MyBatis之ResultMap的association和collection标签详解( 二 )


  • 实体类演示
@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标签常用参数详解属性描述property映射到列结果的字段或属性 。如果用来匹配的 JavaBean 存在给定名字的属性 , 那么它将会被使用 。否则 MyBatis 将会寻找给定名称的字段 。无论是哪一种情形,你都可以使用通常的点式分隔形式进行复杂属性导航 。人话为:你要一对一的实体类中的另一个实体类的名称javaType这里和一对一的表示不太一样,这里一般是一对多的集合类型,如:listofType指定的这个一对多的集合的所存放的实体类的类型例子演示
- 实体类演示
@Data//班级类public class Class {    private String id;    private String name;    private List<Student> students;//----重点在这里,一个班级对应多个学生}@Datapublic class Student {    private int id;    private String name;    private int age;}- xml演示
【MyBatis之ResultMap的association和collection标签详解】<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>

推荐阅读