mybatis |
您所在的位置:网站首页 › select语句多表查询 › mybatis |
mybatis-plus如何实现多表查询
发布时间:2021-07-22 14:23:51
来源:亿速云
阅读:1529
作者:小新
栏目:编程语言
这篇文章给大家分享的是有关mybatis-plus如何实现多表查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 java mybatis 多表查询 简介 实现简单的实体类操作多表, 首先你的项目是使用了mybatis-plus 才可以使用 设计说明 如何关联表? 找第一张表注解为 TableId (mybatis-plus 注解)的属性名, 到每二张表找同样的属性名, 如果没找到,反过来找,如果还没找到,挨个属性找。以此类推,实现关联的前提条件是 主从表的关联例名必须一样 // user 表 @TableId private Integer userId // address 表 @TableId private Integer addressId private Integer userId使用说明 将 com.freedomen.multipselect 包放到你的项目中,使 com.freedomen.multipselect.mapper里的xml 要被扫描到,或手动配置, com.freedomen.multipselect.service也要被发现 //引入service @Autowired private 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 division:括号 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如何实现多表查询”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! 推荐阅读: MySQL中如何实现多表查询操作 Hibernate中如何实现多表查询免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。 mybatis-plus 上一篇新闻:nodejs+mongodb aggregate级联查询的示例分析 下一篇新闻:如何解决Boostrap栅格系统与自己额外定义媒体查询的冲突问题 猜你喜欢 Spring Boot中的权限系统如何利用Spring Security 进行构建 Java中高精度整数与高精度小数的区别有哪些 怎么在java项目中实现一个链栈存储 如何在Java项目中利用jdbc-odbc桥接方式来连接数据库 利用java怎么实现一个网页爬虫功能 Java中protobuf与avro的区别是什么 使用Spring MVC与Mybatis如何对Mysql数据库进行分页查询 利用java如何去掉文本中的空格与空行 java中字符流缓冲区的作用是什么 Java对象的序列化与反序列化详解 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |