芝士,老鼠夹, 我来了

嗯, 重新开始吧.

在看mybatis的书, 把mybatis再恶补一下吧, 毕竟这个是纯软, 家里还没收拾完, 纯软容易搞一点.

 1 <select id="selectRolesByUserAndRole" resultType="marc.mybatis.lesson1.model.SysRole">
 2         select
 3         r.id,r.role_name roleName,r.enabled,r.create_by
 4         createBy,r.create_time
 5         createTime,
 6         u.user_name as "user.userName",
 7         u.id as "user.Id"
 8         from
 9         sys_user u inner join
10         sys_user_role ur on u.id=ur.user_id inner join
11         sys_role r on
12         ur.role_id=r.id
13         where u.id=#{user.id} and
14         r.enabled=#{role.enabled}
15 </select>

这里有两个知识点, 一个是把user.id,role.enabled这两个值当输入参数的时候, 如果传入的直接是两个类, 或曰对象, 可以这么写, 直接在mapper类里面传入类即可:

1 List<SysRole> selectRolesByUserAndRole(@Param("user") SysUser user, @Param("role") SysRole role);

另一个就是把结果拼成一个对象输出的时候, 如果打个比方, 如果role里面含有一个user对象, 就用u.user_name as "user.userName", 输出的时候就可以直接找到内含的这个user对象了:

SysRole [id=1, rolename=管理员, enabled=1, createby=1, createtime=Sat Dec 09 12:22:12 CST 2017, user=SysUser [id=1, userName=admin, userPassword=null, userEmail=null, userInfo=null, headImg=null, createTime=null]]

最后要注意的就是两次左连接, 相当于子查询, 可以构建多对多的表关系, 这个东西以前没搞过, 搞用户自定义图片的时候, 我居然用的9个键值, sb......估计卓越看了我的库, 想骂我...

多对多的关系, 估计还得多练习....

原文地址:https://www.cnblogs.com/Montauk/p/9722092.html