Skip to content

整合MyBatisPlus

MyBatisPlus是MyBatis的扩展,本身是包括MyBatis的,也是可以使用MyBatis本身的功能的,只是在这个基础上增添了一些功能

在pom.xml引入依赖

xml
        <!--整合MyBatisPlus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <!--需要手动声明版本-->
            <version>3.4.3</version>
        </dependency>

创建接口继承BaseMapper,指定泛型为映射类

java
package com.atguigu.boot.Dao;

import com.atguigu.boot.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserDaoOne extends BaseMapper<User> {
}

一般来说,bean的名字是和表名呈现"驼峰"和"_"的映射关系的,因为MP不需要写sql语句,所以当名字不一致时,需要手动去设置,全局配置可以在application.yaml中配置

yaml
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=UTC
    username: root
    password: yuxingxuan
mybatis-plus:
  global-config:
    db-config:
      # 设置数据库表的前缀,与bean映射时会去除此前缀
      table-prefix: tb_
      # 使用数据库的自增id(全局指定)
      id-type: auto
  # 开启MP日志功能,打印信息到控制台
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

也可以单独在bean中设置与表的映射表名,单独设置优先于全局配置

java
package com.atguigu.boot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;

@AllArgsConstructor
@Data
@TableName("tb_users") //设置映射的表名
public class User {
    @TableId(type = IdType.AUTO) //为主键且是自增的,在进行添加时不会使用默认的雪花算法(单独指定)
    private Integer id;
    @TableField("name") //设置属性和字段的映射关系
    private String name;
    private String password;
}

测试

java
    @Resource
    private UserDaoOne userDaoOne;

    @Test
    public void testUserDaoOne(){
        System.out.println(userDaoOne.selectById(4)); //返回id为4的查询信息
        System.out.println(userDaoOne.insert(new User(null,"y","123"))); //添加成功后返回受影响的行数
    }