资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么用mybatis-plus实现简单不需要写sql的多表查询

这篇文章主要讲解了“怎么用mybatis-plus实现简单不需要写sql的多表查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用mybatis-plus实现简单不需要写sql的多表查询”吧!

创新互联公司为客户提供专业的成都网站设计、成都做网站、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站开发等网站方面业务。

简介

实现简单的实体类操作多表, 首先你的项目是使用了mybatis-plus 才可以使用

设计说明

如何关联表?

找第一张表注解为 TableId (mybatis-plus 注解)的属性名, 到每二张表找同样的属性名, 如果没找到,反过来找,如果还没找到,挨个属性找。以此类推,实现关联的前提条件是 主从表的关联例名必须一样

// user 表@TableIdprivate Integer userId// address 表@TableIdprivate Integer addressIdprivate Integer userId

使用说明

com.freedomen.multipselect 包放到你的项目中,使 com.freedomen.multipselect.mapper里的xml 要被扫描到,或手动配置, com.freedomen.multipselect.service也要被发现

//引入service@Autowiredprivate MultipleService multipleService;//表关联, 关联用户表和地址表,查找 用户表的所有字段和地址表的所有字段MultipleSelect multipleSelect = MultipleSelect.newInstance("${1}", new User(), new Address());multipleSelect .where("${0}") .like("userName", "张三");multipleService.mulSelect(multipleSelect);

查找字段

//MultipleSelect.newInstance 的第一个参数是所要查找的字段//${0} 或 ${user} 表是第一张表的所有字段 ${0}.userName或${user}.userName表示userName字段, 默认第一张表的字段全部都返回的。 ${}中间的参数可以是后面实体的下标,也可以是表名 如user、user_address//下面是要订单表的所有信息 和用户的姓名与号码 和地址MultipleSelect.newInstance("${1}.userName,${1}.userPhone,${2}", new Orders(), new User(), new Address());

查找条件

eq: =  notEq: !=  like: LIKE (前置已经加了 '%')  between: between  and: 改变连接方式为 AND练级(默认)  or: 改变 连接方式为 OR  pision:括号  in: IN  notIn: NOT IN  notLike: NOT LIKE  ...等等

//实例好 查找实体后可以操作实体//注意: 如何实体内属性有值 将会以 eq方式and连接做为where 条件MultipleSelect multipleSelect = MultipleSelect.newInstance("${1}.userName,${1}.userPhone,${2}", new Orders(), new User(), new Address());multipleSelect .where("${0}") //哪张表 .eq("ordersId", 1) //并且 订单id = 1 .like("ordersName", "cmcc") //并且 订单名称 like ''%cmcc' .or() //改变后续操作关系为 OR, 默认为AND .notEq("orderSno", "123"); //或者 orderSno 不等于 '123' multipleSelect .where("${1}") //哪张表接着用户表 默认and连接 可以 .or()改为 OR .in("userId", [1, 2, 3]); // 并且userId in [1, 2, 3] multipleSelect .where("${2}") .or() .like("adressDetails", "江苏"); //或者 地址 like '江苏'multipleService.mulSelect(multipleSelect); //查询

排序

//MultipleSelect.setOrderBy(...columns)MultipleSelect.setOrderBy("${1}.ordersName desc", "${2}.userId asc", ...)

分页

//MultipleSelect.setPage(pageNo, pageSize);MultipleSelect.setPage(1, 15); //第一页 每页 15条

multipleService.mulSelect返回结果

//MultipleResult/* 原型 private List> data; //结果数据 private Integer pageNo;  //如果设置了分页 会有 private Integer pageSize;  //如果设置了分页 会有 private Integer total;  //如果设置了分页 会有*/

逻辑删除

//默认是读取 mybatis-plus 的 TableLogic 注解 0 未删除,//如果不是用 0 表示未删除, 可以修改 MultipleSelect 的 setCustomWhere 方法中的下面这段中的 0  if (logic != null) sb.append(" AND ") .append(te.getNickName()) .append(".") .append(logic) .append(" = ") .append("0");

感谢各位的阅读,以上就是“怎么用mybatis-plus实现简单不需要写sql的多表查询”的内容了,经过本文的学习后,相信大家对怎么用mybatis-plus实现简单不需要写sql的多表查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


文章名称:怎么用mybatis-plus实现简单不需要写sql的多表查询
分享链接:http://cdkjz.cn/article/pjpsij.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220