mybatis映射系列教程8:JavaType和ofType区别
在mybatis框架中,JavaType和ofType都是用来指定对象类型的。JavaType和ofType的区别在于:JavaType用来指定POJO中属性的类型,而ofType指定的是映射到List集合中POJO的类型。如下面代码所示:
mybatis POJO类:
- public class User
- {
- private int id;
- private String name;
- private String mobile;
- private List<Post>posts;
- }
mybatis user.xml:
- <resultMap type="User" id="resultUserMap">
- <result property="id" javaType="int" column="user_id" />
- <result property="name" javaType="string" column="username" />
- <result property="mobile" column="mobile" />
- <!--javatype指定的是user对象的属性的类型(例如id,posts),而oftype指定的是映射到list集合属性中POJO的类型,本例指的是post类型)-->
- <collection property="posts" ofType="Post" javaType="java.util.ArrayList" column="id">
- <id property="id" column="post_id" javaType="int" jdbcType="INTEGER"/>
- <result property="title" column="title" javaType="string" jdbcType="VARCHAR"/>
- <result property="content" column="content" javaType="string" jdbcType="VARCHAR"/>
- </collection>
- </resultMap>
说明:
在本例中,javatype指定的是user对象的属性的类型(例如id,posts),而oftype指定的是映射到list集合属性中POJO的类型,指的是post类型。