<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.witwicky.mapper.UserMap"> <insert id="insertUser" parameterType="com.witwicky.pojo.User">
<!-- 将自动生成的编号放入user对象中的id属性中 -->
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
select
LAST_INSERT_ID()
</selectKey>
insert into user (username, sex, birthday, address)
values
(#{username}, #{sex}, #{birthday}, #{address})
</insert> <delete id="deleteUserById" parameterType="java.lang.Integer">
delete from user where
id = #{id}
</delete> <update id="updateUser" parameterType="com.witwicky.pojo.User">
update user set name=
#{name} where id=#{id}
</update> <select id="selectAllUser" resultType="com.witwicky.pojo.User">
select * from user
</select> <select id="selectUserByUserName" parameterType="java.lang.String"
resultType="com.witwicky.pojo.User"> <!-- List<User> list = sqlSession.selectList("test.selectUserByUserName",
"张"); -->
select * from user where username like '%${value}%' <!-- List<User> list = sqlSession.selectList("test.selectUserByUserName",
"%张%"); -->
<!-- select * from user where name like #{name} -->
</select> <!-- 查询订单信息,包含用户信息 -->
<resultMap type="com.witwicky.pojo.Orders" id="findOrdersResultMap">
<id property="id" column="order_id" />
<result property="userId" column="user_id" />
<result property="number" column="number" />
<result property="createtime" column="createtime" />
<result property="note" column="note" /> <association property="user" javaType="com.witwicky.pojo.User">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="sex" column="sex" />
<result property="birthday" column="birthday" />
<result property="address" column="address" />
</association>
</resultMap>
<select id="findOrders" resultMap="findOrdersResultMap">
select u.*, o.id as order_id,
o.user_id, o.number, o.createtime, o.note from user as u, orders as o
where u.id = o.user_id
</select> <!-- 查询用户信息,包含订单 -->
<resultMap type="com.witwicky.pojo.User" id="findUserContainOrdersResultMap">
<id property="id" column="id" />
<result property="username" column="username" />
<result property="sex" column="sex" />
<result property="birthday" column="birthday" />
<result property="address" column="address" /> <collection property="orders" ofType="com.witwicky.pojo.Orders">
<id property="id" column="order_id" />
<result property="userId" column="user_id" />
<result property="number" column="number" />
<result property="createtime" column="createtime" />
<result property="note" column="note" />
</collection>
</resultMap>
<select id="findUserContainOrders" resultMap="findUserContainOrdersResultMap">
select u.*, o.id as
order_id,
o.user_id, o.number, o.createtime, o.note from user as u,
orders as o
where u.id = o.user_id
</select> </mapper>

mybatis 一对多关系的更多相关文章

  1. mybatis一对多关系的关联查询

    问题描述:实现两张表的关联查询 学生表: 班级表: 要实现学生管理信息中有所在班级的名称,即如下图所示 1.对应学生表的pojo类写全班级表中的字段(适用于要连接的表字段较少的情况) sql语句直接在 ...

  2. MyBatis之级联——一对多关系

    上次我们讲到了MyBatis的一对一关系的表示,简单回顾一下一对一关系就是一个学生只有一个学生证.那么什么是一对多关系呢?一个学生有多个课程这就是一对多的关系.我们结合上一章中的学生和学生证,在此基础 ...

  3. Mybatis框架中实现双向一对多关系映射

    学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ...

  4. mybatis之级联关系(一对一、一对多)

    0. 表结构 1. 准备工作 1.1 配置文件等信息,请参考  myBatis之入门示例 1.2 entity 1.2.1 TPersonInfo.java package com.blueStarW ...

  5. Java基础-SSM之mybatis一对多和多对一关系映射

    Java基础-SSM之mybatis一对多和多对一关系映射 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建customers表: ...

  6. MyBatis日记(五):一对一关系,一对多关系

    一对一关系: 首先在数据库中新增地址表(t_address)用于存储人员的地址信息: CREATE TABLE `t_address` ( `id` ) NOT NULL AUTO_INCREMENT ...

  7. MyBatis加强(1)~myBatis对象关系映射(多对一关系、一对多关系)、延迟/懒加载

    一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部 ...

  8. MyBatis——一对多、一对一关系,collection、association

    实体类两个: user类: package com.pojo; /** *用户 */ public class User{ private int userId;//用户ID private Stri ...

  9. 0050 MyBatis关联映射--一对多关系

    一对多关系更加常见,比如用户和订单,一个用户可以有多个订单 DROP TABLE IF EXISTS customer; /*用户表*/ CREATE TABLE customer( `pk` INT ...

随机推荐

  1. Linux命令-终止进程命令:pkill

    killall是杀死所有进程,而pkill是按照进程名称杀死进程,可以达到杀死所有进程的目的,因为linux里面同名的进程是分主进程和子进程的. pkill - httpd 按名称强制杀死httpd进 ...

  2. Java程序作linux服务并且开机自动启动[转]

    以有个java应用名称为test,打包为test.jar,程序入口为cn.com.ppnote.SocketServer. 下面在linux的/opt下建立testapp目录,复制test.jar到/ ...

  3. Android之getSystemService

    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...

  4. Python rstrip() 方法

    描述 Python rstrip() 方法用于删除字符串尾部指定的字符,默认字符为所有空字符,包括空格.换行(\n).制表符(\t)等. 语法 rstrip() 方法语法: S.rstrip([cha ...

  5. 分享Memcached shell启动停止脚本

    注意:要使用这个shell,必须先成功建立memcache环境 1>建立memcached文件和权限 [root@luozhonghua ~]# touch /etc/init.d/memcac ...

  6. particleDesigner2 positionType按钮

    在particleDesigner2中positionType对应的设置是:

  7. 使用SQL语句的子查询批量复制表数据

    批量复制表数据这里有两种方法,下面分别来介绍这两种方法: 一.手动创建新表,然后复制数据 如果是要复制整个表的话,可以使用SQL SERVER自动生成CREATE脚本: 然后在脚本中改改表名就可以了, ...

  8. macbook基本配置

    1.安装iterm2, 2.安装搜狗输入法, 3.安装迅雷, 4.安装homebrew 5.安装新版的gcc,bash等等,及升级配置文件.

  9. Python文件遍历二种方法

    分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现. 关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os ...

  10. Linux下C++连MySQL数据库

    1.查看本地有没有安装mysql,命令就是mysql,如果有这个命令就表示安装了mysql数据库软件.如果没有就自行安装. MySQL-server-4.0.16-0.i386.rpm MySQL-c ...