Mybatis处理“一对多”的关系时,需要用到associasion元素.处理”多对一“用collection元素来实现(这两个元素在之前mapper文件中提到过). 本例子中,假设一名User可以有多个Orders,用associasion来实现关联关系 首先数据库表结构 CREATE TABLE `user` ( `id` int(8) NOT NULL AUTO_INCREMENT, `username` varchar(20) COLLATE utf8_bin NOT NULL, `us…
一.背景 1.在系统中一个用户存在多个角色,那么如何在查询用户的信息时同时把他的角色信息查询出来啦? 2.用户pojo: public class SysUser { private Long id; private String userName; private String password; private String nickName; private String salt; private List<SysRole> roleList; 3.数据库 二.实现 如果一个对象中的属…
XML版本: 实体类: @Data @ToString @NoArgsConstructor public class Dept { private Integer id; private String name; private List<Dept> children = new ArrayList<Dept>(); private Dept parent; public Dept(Integer id) { this.id = id; } public Dept(String…
XML版本: 实体类: package com.sunwii.mybatis.bean; import java.util.ArrayList; import java.util.List; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @ToString @NoArgsConstructor public class Dept { private Integer id; pr…
模拟情景: 对象:学生,课程 关系:一个学生可选多个课程,一门课程可被多个学生选择 一.保存 1.创建数据库表,student,course,student_course,其中student_course用来关联学生表与课程表注意在设计表的字段时,字段名不要相同,尤其是主键的字段名不要相同,不然在查询的时候使用collection集合只出现一条结果.student_course表中的s_id,c_id作为外键关联到student,course表的主键 DROP TABLE IF EXISTS `…
1.先说resultMap比较容易混淆的点, 2. Map结尾是映射,Type是类型  resultType 和restltMap restulyType: 1.对应的是java对象中的属性,大小写不敏感, 2.如果放的是java.lang.Map,key是查询语句的列名,value是查询的值,大小写敏感 resultMap:指的是定义好了的id的,是定义好的resyltType的引用 注意:用resultType的时候,要保证结果集的列名与java对象的属性相同,而resultMap则不用,而…
一.前言 MyBatis 创建时的一个思想是:数据库不可能永远是你所想或所需的那个样子. 我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们并不都是那样. 如果能有一种数据库映射模式,完美适配所有的应用程序,那就太好了,但可惜也没有. 而 ResultMap 就是 MyBatis 对这个问题的答案. 二.ResultMap 的属性列表 属性 描述 id 当前命名空间中的一个唯一标识,用于标识一个结果映射. type 类的完全限定名, 或者一个类型别名(关于内置的类型别名,可以参考…
在使用 association和collection 进行关联查询的时候 column 参数可能会有多个,如下: 注意: parameterType 一定要是 java.util.Map…
一.myBatis对象关系映射(多对一关系.一对多关系) 1.多对一关系: ---例子:多个员工同属于一个部门. (1)myBatis发送 额外SQL: ■ 案例:员工表通过 dept_id 关联 部门表,需求:查询指定员工id.name.所属的部门名称的信息. //部门对象的接口.映射文件省略,跟员工逻辑差不多 /* 员工对象的接口 */ public interface EmployeeMapper { Employee get(Long id); } <!--员工对象的映射文件--> &…
前言:在我们之前的hibernate中我们是学过了关联关系的,所以我们在本章给讲一讲mybatis的关联关系. mybatis的关联关系一对多的测试1.通过逆向工程生成Hbook,HbookCategory,Category如何生成,可以参考之前的这次我们要用到五张数据库表 <table schema="" tableName="t_hibernate_order" domainObjectName="Order" enableCountB…