<resultMap type="Bill" id="ResultBill"> <id property="id" column="id"/> <result property="dh" column="dh"  /> <result property="rq" column="rq"/> <a…
一.前言 MyBatis 创建时的一个思想是:数据库不可能永远是你所想或所需的那个样子. 我们希望每个数据库都具备良好的第三范式或 BCNF 范式,可惜它们并不都是那样. 如果能有一种数据库映射模式,完美适配所有的应用程序,那就太好了,但可惜也没有. 而 ResultMap 就是 MyBatis 对这个问题的答案. 二.ResultMap 的属性列表 属性 描述 id 当前命名空间中的一个唯一标识,用于标识一个结果映射. type 类的完全限定名, 或者一个类型别名(关于内置的类型别名,可以参考…
1.先说resultMap比较容易混淆的点, 2. Map结尾是映射,Type是类型  resultType 和restltMap restulyType: 1.对应的是java对象中的属性,大小写不敏感, 2.如果放的是java.lang.Map,key是查询语句的列名,value是查询的值,大小写敏感 resultMap:指的是定义好了的id的,是定义好的resyltType的引用 注意:用resultType的时候,要保证结果集的列名与java对象的属性相同,而resultMap则不用,而…
一对多 MyBatis的resultMap只用于配置结果如何映射,id的唯一作用就是在嵌套的映射配置时判断数据是否相同,当配置id标签时,MyBatis只需要逐条比较所有数据中id标签字段值是否相同即可,可以提高处理效率.为了更清楚地理解id 的作用,可以临时对userMap 的映射进行如下修改.<resultMap id="userMap" type="test.mybatis.simple.model.SysUser"><id property…
<if>标签 1.判断非空或不等于 <if test="assessTypes!= null and assessTypes!='' "> AND FIND_IN_SET(t1.assess_type,#{assessTypes}) </if> 2.判断等于某个固定字符 <if test='rankWay=="byAssessDate" and isDesc=="1" '> ORDER BY t1.…
前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:)   标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到实体类集合List<UserEvent>,但是实体中只有eventId信息,其他属性值均为空. 需要从数据库中查询数据,完善List<UserEvent>的信息并返回. 相关业务表以及对应的实体类,如下图.(为了回避项目信息,相关业务内容均省略,以下表名.实体名.代码变量名等均用字母A…
很多开发人员之所以编写出低效的应用,有一大原因是并不理解怎样编写高效的SQL.以订单查询为例,我们经常需要查询某个用户的订单以及订单明细,并且以树形方式展现如下: 对于这种性质的功能,很多开发人员的做法是先查询主表,然后根据主表去循环子表,如下所示: List<Department> depts = DepartmentMapper.queryDept(); for (Department dept: depts) { dept.setEmps(EmployeeMapper.queryEmp(…
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解使用collection标签实现嵌套查询的方法. 1. 需求升级 在上篇博客中,我们实现了需求:根据用户id查询用户信息的同时获取用户拥有的角色. 因为角色可以拥有多个权限,所以本篇博客我们升级需求为:根据用户id查询用户信息的同时获取用户拥有的角色以及角色包含的权限. 2. 实现方式 因为我们需要使用到权限表的映射,所以我们需要…
一.背景 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.数据库 二.实现 如果一个对象中的属…
1.场景: fyq_share_house 表 和 fyq_sh_tag 表 两张表是一对多的关系, 一个楼盘对应多个标签,在实体类ShareHouse中使用 /** * 楼盘标签 */ private List<String> tags ; 来存放多个tag标签. MyBatis对应的xml配置文件表示为 <collection property="tags" ofType="string"> <constructor> <…