Mybatis 结果映射 常用的情况
2018-02-26 16:26
162 查看
当多表联查的情况分析
1.resultMap
a:直接写 resultType="java.util.HashMap" 简单直接 一般推荐使用
<select id="findTownList" resultType="java.util.HashMap">
SELECT townid AS "TOWNID",townname FROM town WHERE id = #{id} </select>
b. resultMap="TownMap2" 正规写法
<select id="findTownList2" resultMap="TownMap2">
SELECT townid,townname FROM town WHERE id = #{id} </select>
<resultMap type="Town" id="TownMap2">
//在中间可以写映射,可以更换名字
</resultMap>
优点:不用创建实体类
缺点:没有pojo类没有对应关系
2.resultType
<select id="findapplicationid" parameterType="String" resultType="kapplication">
分为两种情况:
a:利用组合 缺点是:
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
@NotEmpty(message="id名字不能为空")
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthday;
private String sex;
private String address;
private User1 user1;
}@Results(id="user1",value={
@Result( property= "user1.id", column = "id", javaType = Integer.class),
@Result( property= "user1.birthday",column = "birthday", javaType = LocalDate.class),
@Result( property= "user1.sex", column = "sex", javaType = String.class),
@Result(property = "user1.address", column = "address", javaType = String.class),
})
B:利用继承 常用简单
public class User1 extends User{ }
POJO类与数据库表一一对应,尽量不要修改
3.从新建一个POJO类,从别的几个POJO类拷贝过来,生成新的,实际工作中也有这样用的。
1.resultMap
a:直接写 resultType="java.util.HashMap" 简单直接 一般推荐使用
<select id="findTownList" resultType="java.util.HashMap">
SELECT townid AS "TOWNID",townname FROM town WHERE id = #{id} </select>
b. resultMap="TownMap2" 正规写法
<select id="findTownList2" resultMap="TownMap2">
SELECT townid,townname FROM town WHERE id = #{id} </select>
<resultMap type="Town" id="TownMap2">
//在中间可以写映射,可以更换名字
</resultMap>
优点:不用创建实体类
缺点:没有pojo类没有对应关系
2.resultType
<select id="findapplicationid" parameterType="String" resultType="kapplication">
分为两种情况:
a:利用组合 缺点是:
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
@NotEmpty(message="id名字不能为空")
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthday;
private String sex;
private String address;
private User1 user1;
}@Results(id="user1",value={
@Result( property= "user1.id", column = "id", javaType = Integer.class),
@Result( property= "user1.birthday",column = "birthday", javaType = LocalDate.class),
@Result( property= "user1.sex", column = "sex", javaType = String.class),
@Result(property = "user1.address", column = "address", javaType = String.class),
})
B:利用继承 常用简单
public class User1 extends User{ }
POJO类与数据库表一一对应,尽量不要修改
3.从新建一个POJO类,从别的几个POJO类拷贝过来,生成新的,实际工作中也有这样用的。
相关文章推荐
- Mybatis 高级结果映射Association Collection Cache-ref Discriminator Cache
- MyBatis之Mapper XML 文件详解(五)-自动映射查询结果
- Mybatis 高级结果映射 ResultMap Association Collection
- MyBatis知多少(23)MyBatis结果映射
- MyBatis 入门到精通(三) 高级结果映射
- mybatis学习三 多级结果映射
- Mybatis 高级结果映射 ResultMap Association Collection
- MyBatis笔记:使用resultMap映射sql返回的结果
- Mybatis 高级结果映射 ResultMap Association Collection
- MyBatis入门程序之mapper映射文件常用配置命令
- mybatis-高级结果映射之一对多(你知道一对多的结果是如何合并的吗)
- mybatis之入门到开发(三)之常用对象SqlSessionFactory和SqlSession,动态sql,输入映射和输出映射
- MyBatis知多少(23)MyBatis结果映射
- java之路 myBatis重新学习(三)高级结果映射
- Mybatis 高级结果映射 ResultMap Association Collection
- mybatis返回HashMap结果类型与映射
- Mybatis 高级结果映射 ResultMap Association Collection
- MyBatis高级结果映射集ResultMap
- Mybatis高级结果映射ResulMap与ResultType,collection与association
- 框架学习系列 mybatis 第十八篇 高级结果一对一结果映射之resultMap的使用