作为目前简便开发中mybatis-plus当然是项目中必不可少的工具,
下面是我在开发中集成mybatis-plus以及使用的过程介绍
1、首选介绍的普通版本的mybatis-plus集成,即只能进行单表的查询处理
引入依赖,如下代码,需要注意的是,由于mybatis-plus内部也有mybatis,但是版本比较低,可能会造成版本的冲突,所以我这里给mybastis-plus中的mybatis去除掉了,下面又再进入最新版本的mybatis,
<!--普通mybatis-plus配置--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.6</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </exclusion> </exclusions> </dependency>
<!--mybatis配置--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>3.0.3</version> </dependency>
mybatis-plus配置完之后,还需要进行数据库的依赖引入,我这里使用的是mysql:
<!--mysql配置--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency>
到这里,依赖就引入结束了,我这里通过idea自带的生成代码工具,生成相关代码,极力推荐,感觉很方便,不会使用的可以自行百度搜下,里面可以直接选择mybatis-plus代码生成
生成代码后,启动项目会发现报错,这里需要我们在启动类增加@MapperScan注解,去找到对应的mapper类
到这里我们就可以直接使用mybatis-plus了,比如我们想查询用户信息,则代码如下:
//普通mybatis-plus查询单表 LambdaQueryWrapper<SysUser> lambdaQueryWrapper = new LambdaQueryWrapper<>(); if (StringUtils.isNotBlank(sysUser.getUserName())){ lambdaQueryWrapper.eq(SysUser :: getUserName,sysUser.getUserName()); } List<SysUser> list1 = baseMapper.selectList(lambdaQueryWrapper);
但是我们在开发中会发现,很多逻辑单表查询是实现不了功能,需要进行表的关联,这时候上面的普通mybatis-plus就不能实现我们的功能了,我们需要引入新的依赖,如下代码:
<!--关联Join查询 mybatis查询配置--> <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join-boot-starter</artifactId> <version>1.4.11</version> </dependency>
这个是对上面普通mybatis-plus只做增强不做修改,可以同时存在,这个时候我们想查询用户以及当前这个用户的角色名称信息,代码即如下:
//增强mybatis-plus查询多表关联查询 MPJLambdaWrapper<SysUser> mpjLambdaWrapper = new MPJLambdaWrapper<>(); mpjLambdaWrapper.selectAll(SysUser.class) .select(SysRole :: getRoleName) .leftJoin(SysUserRole.class,SysUserRole :: getUserId,SysUser :: getUserId) .leftJoin(SysRole.class,SysRole :: getRoleId,SysUserRole :: getRoleId); List<SysUser> list2 = baseMapper.selectList(mpjLambdaWrapper);
MyBatis-Plus-Join有很多方法可到其官网进行查看使用
好了,结束收工!