easymybatis中多表关联查询

原创
2017/10/17 14:04
阅读数 145

多表关联查询使用的地方很多,比如需要关联第二张表,获取第二张表的几个字段,然后返回给前端。

easymybatis的用法如下: 假如我们需要关联第二张表,并且获取第二张表里的city,address字段。步骤如下:

  • 在实体类中添加city,address字段,并标记@Transient注解。只要不是主表中的字段都要加上@Transient
@Transient
private String city;
@Transient
private String address;

// getter setter
  • 接下来是查询代码:
Query query = new Query();
// 添加第二张表的字段,跟主表字段一起返回
query.addOtherColumns(
	"t2.city"
	,"t2.address"
);
// 左连接查询,主表的alias默认为t
query.join("LEFT JOIN user_info t2 ON t.id = t2.user_id"); 
// 添加查询条件
query.eq("t.username", "张三");

List<TUser> list = dao.find(query);

得到的SQL语句:

SELECT 
	t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
	, t2.city , t2.address 
FROM `t_user` t LEFT JOIN user_info t2 ON t.id = t2.user_id 
WHERE t.username = ?
LIMIT ?,?

关联了user_info表之后,还可以筛选user_info的数据,也就是针对user_info表进行查询:

query.eq("t2.city","杭州");

关于easymybatis

easymybatis是一个mybatis增强类库,目的为简化mybatis的开发,让开发更高效。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部