当前位置: 首页 > news >正文

群晖建设网站网站后台 二级域名

群晖建设网站,网站后台 二级域名,漳州平台网站建设,网站开发网站说明怎么写众所周知#xff0c;Mybatis Plus 封装的 mapper 不支持 join#xff0c;如果需要支持就必须自己去实现。但是对于大部分的业务场景来说#xff0c;都需要多表 join#xff0c;要不然就没必要采用关系型数据库了。 直到前几天#xff0c;偶然碰到了这么一款叫做mybatis-p…众所周知Mybatis Plus 封装的 mapper 不支持 join如果需要支持就必须自己去实现。但是对于大部分的业务场景来说都需要多表 join要不然就没必要采用关系型数据库了。 直到前几天偶然碰到了这么一款叫做mybatis-plus-join的工具后面就简称mpj了使用了一下不得不说真香彻底将我从xml地狱中解放了出来终于可以以类似mybatis-plus中QueryWrapper的方式来进行联表查询了话不多说我们下面开始体验。 引入依赖 首先在项目中引入引入依赖坐标因为mpj中依赖较高版本mybatis-plus中的一些api所以项目建议直接使用高版本。 maven dependencygroupIdcom.github.yulichang/groupIdartifactIdmybatis-plus-join/artifactIdversion1.2.4/version /dependency dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version /dependency引入相关依赖后在springboot项目中像往常一样正常配置数据源连接信息就可以了。 Gradle implementation com.github.yulichang:mybatis-plus-join-boot-starter:1.4.4使用 mapper继承MPJBaseMapper (必选)service继承MPJBaseService (可选)serviceImpl继承MPJBaseServiceImpl (可选) 核心类MPJLambdaWrapper和MPJQueryWrapper MPJLambdaWrapper用法 简单的三表查询 class test {Resourceprivate UserMapper userMapper;void testJoin() {//和Mybatis plus一致MPJLambdaWrapper的泛型必须是主表的泛型并且要用主表的Mapper来调用MPJLambdaWrapperUserDO wrapper new MPJLambdaWrapperUserDO().selectAll(UserDO.class)//查询user表全部字段.select(UserAddressDO::getTel)//查询user_address tel 字段.selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress)//别名 t.address AS userAddress.select(AreaDO::getProvince, AreaDO::getCity).leftJoin(UserAddressDO.class, UserAddressDO::getUserId, UserDO::getId).leftJoin(AreaDO.class, AreaDO::getId, UserAddressDO::getAreaId).eq(UserDO::getId, 1).like(UserAddressDO::getTel, 1).gt(UserDO::getId, 5);//连表查询 返回自定义ResultTypeListUserDTO list userMapper.selectJoinList(UserDTO.class, wrapper);//分页查询 需要启用 mybatis plus 分页插件PageUserDTO listPage userMapper.selectJoinPage(new Page(2, 10), UserDTO.class, wrapper);} }对应sql SELECT t.id, t.name, t.sex, t.head_img, t1.tel, t1.address AS userAddress,t2.province, t2.city FROM user t LEFT JOIN user_address t1 ON t1.user_id t.id LEFT JOIN area t2 ON t2.id t1.area_id WHERE (t.id ? AND t1.tel LIKE ? AND t.id ?)说明: UserDTO.class 查询结果返回类(resultType)selectAll() 查询指定实体类的全部字段select() 查询指定的字段,支持可变参数,同一个select只能查询相同表的字段selectAs() 字段别名查询,用于数据库字段与业务实体类属性名不一致时使用leftJoin() 参数说明第一个参数: 参与连表的实体类class 第二个参数: 连表的ON字段,这个属性必须是第一个参数实体类的属性 第三个参数: 参与连表的ON的另一个实体类属性默认主表别名是t,其他的表别名以先后调用的顺序使用t1,t2,t3…条件查询,可以查询主表以及参与连接的所有表的字段,全部调用mp原生的方法,正常使用没有sql注入风险 MPJLambdaWrapper 还有很多其他的功能 简单的SQL函数使用https://gitee.com/best_handsome/mybatis-plus-join/wikis/selectFunc()?sort_id4082479ON语句多条件支持https://gitee.com/best_handsome/mybatis-plus-join/wikis/leftJoin?sort_id3496671 等效于ResultMap resultMap idxxxxxxxx typecom.github.yulichang.join.dto.UserDTOresult propertyid columnid/result propertyname columnname/!--其他属性省略--collection propertyaddressList javaTypejava.util.ListofTypecom.github.yulichang.join.entity.UserAddressDOid propertyid columnmpj_id/result propertyaddress columnaddress/result propertyuserId columnuser_id/!--其他属性省略--/collection /resultMapMPJLambdaWrapper其他功能 一对一一对多使用https://ylctmh.com/pages/core/lambda/select/selectCollection.html简单的SQL函数使用https://ylctmh.com/pages/core/lambda/select/selectFunc.htmlON语句多条件支持https://ylctmh.com/pages/core/lambda/join/leftJoin.html 分页查询 mpj中也能很好的支持列表查询中的分页功能首先我们要在项目中加入分页拦截器 Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));return interceptor; }接下来改造上面的代码调用selectJoinPage()方法 public void page() {IPageOrderDto orderPage orderMapper.selectJoinPage(new PageOrderDto(2,10),OrderDto.class,new MPJLambdaWrapperOrder().selectAll(Order.class).select(Product::getUnitPrice).selectAs(User::getName, OrderDto::getUserName).selectAs(Product::getName, OrderDto::getProductName).leftJoin(User.class, User::getId, Order::getUserId).leftJoin(Product.class, Product::getId, Order::getProductId).orderByAsc(Order::getId));orderPage.getRecords().forEach(System.out::println); }注意在这里需要添加一个分页参数的Page对象我们再执行上面的代码并对日志进行解析查看sql语句 可以看到底层通过添加limit进行了分页同理MPJQueryWrapper也可以这样进行分页。 最后 经过简单的测试个人感觉mpj这款工具在联表查询方面还是比较实用的能更应对项目中不是非常复杂的场景下的sql查询大大提高我们的生产效率。当然在项目的issues中也能看到当前版本中也仍然存在一些问题希望在后续版本迭代中能继续完善。 关注我后续更新更多好用的工具效率天花板
http://www.hkea.cn/news/14570227/

相关文章:

  • 杭州建设行业网站东莞专业做网站建设服务
  • 唐山路北网站建设大型网站多少钱
  • 做网投网站安徽省芜湖建设定额网站
  • 西安网站建设eliwe徐州专业做网站的
  • 周口建设网站百度网络优化推广公司
  • 国外销售网站表白制作图神器软件
  • 上海建设主管部门网站旅游短租公寓网站建设
  • 国内老牌的室内设计网站网站建设基础流程图
  • 18+网站推广wordpress悬浮登录插件
  • 手机网站静态动态建立站点的作用
  • 定制家具网站源代码做微课常用的网站有哪些
  • 商圈外卖网站怎么做做网站协议书
  • 网站怎么谈设计网站设置qq临时会话
  • 视频 播放网站怎么做网站主题颜色
  • 沧州网站建设cztjwordpress上站工具
  • 做网站的收入成都系统软件定制开发
  • 怎样看一个网站做的网络广告如何做网站本地服务器吗
  • 企业网站开发摘要seo优化技术厂家
  • 部门网站建设方案建筑室内设计主要学什么
  • 前几年做那些网站能致富如何用微信分享wordpress
  • 建网站那种服务器好移动网站和定制网站
  • 三北防护林体系建设网站自己的电脑做服务区 网站
  • 网站做游客留言做建一个英文网站需要多少钱
  • 盘锦网站建设制作重庆点优建设网站公司吗
  • 郑州网站建设知乎wordpress 留言给站长发邮件
  • 免费一级域名注册网站wordpress 插件 喜欢
  • 竞价单页网站模板苏州保洁公司哪家好一点
  • 给小学生做家教的网站wordpress 阿里cdn
  • 以前在线做预算的网站wordpress优化记录
  • 城乡与建设厅网站公司网络安全管理制度和应急工作预案