MyBatis-Plus集成以及增强版MyBatis-Plus-Join集成到项目中

作为目前简便开发中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);

2、MyBatis-Plus-Join

但是我们在开发中会发现,很多逻辑单表查询是实现不了功能,需要进行表的关联,这时候上面的普通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有很多方法可到其官网进行查看使用

好了,结束收工!

### 集成MyBatis-Plusmybatis-plus-joinSpring Boot 3 为了在Spring Boot 3项目集成MyBatis-Plus以及`mybatis-plus-join`扩展库,需遵循一系列配置步骤来确保两者能够协同工作。下面提供了一个详细的指南。 #### 添加必要的依赖项 首先,在项目的构建文件(通常是`pom.xml`对于Maven项目)里加入所需的依赖包: ```xml <dependencies> <!-- MyBatis Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- MyBatis Plus Join Plugin --> <dependency> <groupId>top.codekiller</groupId> <artifactId>mybatis-plus-join</artifactId> <version>最新版本号</version> </dependency> <!-- 数据源驱动程序 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- 如果还需要其他组件如PageHelper等可继续添加相应依赖 --> </dependencies> ``` 注意:上述代码中的`最新版本号`应替换为实际使用的`mybatis-plus-join`的具体版本[^2]。 #### 应用属性设置 接着修改`application.properties`或`application.yml`文件以适配数据库连接和其他框架参数: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath*:mapper/*.xml ``` 此部分定义了数据源URL、用户名密码以及其他一些关于日志记录位置的信息[^1]。 #### 创建实体类和服务接口 基于业务需求创建对应的Java Bean对象表示表结构,并通过继承自`BaseMapper<T>`来自动生成基础CRUD方法;同时可以编写特定于应用逻辑的服务层接口及其实现类[^3]。 例如,假设有一个名为User的表格,则相应的Entity可能如下所示: ```java import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @TableName("users") public class User { @TableField("id") private Long id; @TableField("name") private String name; // getter setter methods... } ``` 服务接口则可能是这样的形式: ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface IUserService extends BaseMapper<User> {} ``` #### 使用Join功能 当涉及到多表关联查询时,可以通过引入`mybatis-plus-join`简化操作流程。只需按照官方文档说明调整XML映射文件或者动态SQL语句即可完成复杂关系处理。 ```sql -- 假设有两张表分别为 users 和 orders, -- 可以这样写一个联合查询: <select id="selectUsersWithOrders" resultMap="userOrderResultMap"> SELECT u.*, o.order_id, o.amount FROM users AS u LEFT JOIN orders AS o ON u.id = o.user_id WHERE ... </select> ``` 以上就是如何在一个典型的Spring Boot应用程序内集成MyBatis-Plus及`mybatis-plus-join`插件的方法概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值