MyBatis-Plus介绍与整合步骤

MyBatis-Plus说明

  • MyBatis-Plus(简称MP)是一个MyBatis的增强工具

  • 自动实现Mapper CRUD操作,极致提高数据库开发效率

  • MP在MyBatis的基础上只做增强不做改变

MyBatis-Plus整合三部曲

pom引入mybatis-plus依赖

<dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus</artifactId>
        <version>3.4.0</version>
</dependency>

Spring XML更改配置SqlSessionFactory实现类

<!--    <bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sessionFactory">-->
    <bean class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean" id="sessionFactory">

mybatis-config.xml增加MP分页插件

 <plugins>
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/>
    </plugins>

MyBatis-Plus整合三部曲:

创建实体类,@TableName/@TableId/@TableField实现映射

@TableName("test")//说明实体对应那张表
public class Test  {
    //说明这个属性对应字段中的主键我,type值为自增
    @TableId(type = IdType.AUTO)
    @TableField("id")//说明属性对应哪个字段
    private Integer id;
    ////如果字段名与属性名相同或者符合驼峰命名转换规则,则TableField可省略
//    @TableField("content")
    private String content;

创建Mapper接口继承BaseMapper,创建Mapper XML

public interface TestDao extends BaseMapper<Test> {
     //自定义示例方法
     void  insetSample();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="top.xiongmingcai.restful.dao.TestDao">
    <insert id="insetSample">
        insert  into test(content) values ('测试内容')
    </insert>
</mapper>

开发时注入Mapper对象,通过内置API实现CRUD操作

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class TestDaoTest {
    @Resource
    private TestDao testDao;

    @org.junit.Test
    public void insetSample() {
        testDao.insetSample();//兼容自定义mapper方法
    }
//测试继承 MyBateis-Plus BaseMapper 方法
    @org.junit.Test
    public void insert() {
        Test test = new Test();
        test.setContent("mybatis plus test");
        int insert = testDao.insert(test);
        System.out.println("更新多少行?" + insert);
    }

    @org.junit.Test
    public void testUpdateById() {
        Test test = testDao.selectById(63);
        test.setContent("mybatis plus test updateById");
        testDao.updateById(test);
    }

    @org.junit.Test
    public void testDeleteById() {
        testDao.deleteById(63);
    }

    @org.junit.Test
    public void name() {
        //查询条件构造器
        QueryWrapper<Test> queryWrapper = new QueryWrapper<>();
        //相等查询方法
//        queryWrapper.eq("id",64);
//        大于查询方法
        queryWrapper.gt("id", 64);
        List<Test> testList = testDao.selectList(queryWrapper);
        System.out.println(testList);
    }
}

MyBatis-Plus BaseMapper 接口核心API

MyBatis-Plus 核心注解


MyBatis-Plus介绍与整合步骤: 6. 使用分页插件对数据分页 · MingCaiXiong/spring-learn@f1b9166