目录 一、前言 二、ResultMap 的属性列表 三、resultMap标签介绍 四、id result标签参数详解 五、association标签常用参数详解 六、collection标签常用参数详解 七、jdbc Type与java Type对照表 八、总
目录
- 一、前言
- 二、ResultMap 的属性列表
- 三、resultMap标签介绍
- 四、id & result标签参数详解
- 五、association标签常用参数详解
- 六、collection标签常用参数详解
- 七、jdbc Type与java Type对照表
- 八、总结
一、前言
MyBatis 创建时的一个思想是:数据库不可能永远是你所想或所需的那个样子。 我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们并不都是那样。 如果能有一种数据库映射模式,完美适配所有的应用程序,那就太好了,但可惜也没有。 而 ResultMap 就是 MyBatis 对这个问题的答案。
二、ResultMap 的属性列表
三、resultMap标签介绍
- constructor - 用于在实例化类时,注入结果到构造方法中
- idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能
- arg - 将被注入到构造方法的一个普通结果
- id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能
- result – 注入到字段或 JavaBean 属性的普通结果
- association – 一个复杂类型的关联;许多结果将包装成这种类型
嵌套结果映射 – 关联可以是 resultMap 元素,或是对其它结果映射的引用 - collection – 一个复杂类型的集合
嵌套结果映射 – 集合可以是 resultMap 元素,或是对其它结果映射的引用 - discriminator – 使用结果值来决定使用哪个 resultMap
- case – 基于某些值的结果映射
嵌套结果映射 – case 也是一个结果映射,因此具有相同的结构和元素;或者引用其它的结果映射
- case – 基于某些值的结果映射
四、id & result标签参数详解
- 常用例子展示
<resultMap id="UsersMap" type="com.wang.test.demo.entity.User"> <id property="id" column="id" jdbcType="INTEGER"/> <result property="username" column="username" jdbcType="VARCHAR"/> <result property="password" column="password" jdbcType="VARCHAR"/> <result property="role" column="role" jdbcType="VARCHAR"/> <result property="addTime" column="add_time" jdbcType="TIMESTAMP"/> </resultMap>
五、association标签常用参数详解
例子演示
实体类演示
@Data //书籍 public class Book { private String id; private String name; private String author; private Double price; private Integer del; private Date publishdate; private String info; //把出版社对象当作属性 private Publisher pub;//------重点在这里一本书对应一个出版社,这是一个出版社对象 }
@Data //出版社 public class Publisher { private String id; private String name; private String phone; private String address; }
- xml演示
<resultMap id="rMap_book" type="com.wang.test.demo.entity.Book"> <!-- 主键 property为实体类属性 column为数据库字段 jdbcType为实体类对应的jdbc类型--> <id property="id" column="b_id" jdbcType="VARCHAR"></id> <!-- 普通属性 property为实体类属性 column为数据库字段 jdbcType为实体类对应的jdbc类型--> <result property="name" column="b_name" jdbcType="VARCHAR"></result> <result property="author" column="author" jdbcType="VARCHAR"></result> <result property="price" column="price" jdbcType="VARCHAR"></result> <result property="del" column="del" jdbcType="NUMERIC"></result> <result property="publisherid" column="publisher_id" jdbcType="VARCHAR"></result> <result property="publishdate" column="publish_date" jdbcType="TIMESTAMP"></result> <!--一对一映射association property 为实体类book中的属性名字 javaType为实体类属性的类型 --> <association property="pub" javaType="com.wang.test.demo.entity.Publisher"> <id property="id" column="p_id" jdbcType="VARCHAR"></id> <result property="name" column="name" jdbcType="VARCHAR"></result> <result property="phone" column="phone" jdbcType="VARCHAR"></result> <result property="address" column="address" jdbcType="VARCHAR"></result> </association> </resultMap>
六、collection标签常用参数详解
例子演示
- 实体类演示
@Data //班级类 public class Class { private String id; private String name; private List<Student> students;//----重点在这里,一个班级对应多个学生 }
@Data public class Student { private int id; private String name; private int age; }
- xml演示
<resultMap id="rMap_class" type="com.wang.test.demo.entity.Class"> <id property="id" column="id" jdbcType="VARCHAR"></id> <result property="name" column="name" jdbcType="VARCHAR"></result> <!--一对多映射用这个 ofTyp是一对多的集合的所存放的实体类 javaType实体类的属性类型--> <collection property="students" ofType="com.wang.test.demo.entity.Student" javaType="list"> <id property="id" column="id" jdbcType="INTEGER"></id> <result property="name" column="name" jdbcType="VARCHAR"></result> <result property="age" column="age" jdbcType="INTEGER"></result> </collection> </resultMap>
七、jdbc Type与java Type对照表
八、总结
这样就对ResultMap具体参数进行详细的解释,还有对association和collection标签的解释和具体演示,希望能够帮到你,一起学习,如果用到收藏一下呗!!!!
到此这篇关于MyBatis中的ResultMap的association和collection标签详解的文章就介绍到这了,更多相关MyBatis association和collection标签内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!