springboot集成Mybatis-plus完整示例

说明:MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

以前项目中经常使用的是mybatis,现在项目中接触到mybatis-plus,个人觉得挺不错的,只需简单配置,即可使用。内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求,xml也可以大大的简化了

下面来一步步集成

1.引入pom文件(注意:引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差异导致的问题。

 <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.6</version>
        </dependency>
        <!--mybatis-plus的代码生成器-->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--<scope>runtime</scope>-->
        </dependency>


        <!-- 使用数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>

2.配置yml和配置bean(数据源和mapper、实体的配置)

spring:
  datasource:
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/your_database?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true


mybatis-plus:
  # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
  # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
  mapper-locations: classpath:/mapper/*Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.example.select2
@Configuration
@MapperScan("com.example.select2.mapper")
public class MybatisPlusConfig {

    /*
     * 分页插件,自动识别数据库类型
     * 多租户,请参考官网【插件扩展】
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    @Bean(name="dataSource")
    @ConfigurationProperties(prefix="spring.datasource")
    public DataSource dataSource(){
        return new DruidDataSource();
    }


}

3.代码自动生成器(https://mp.baomidou.com/guide/generator.html

这个东西可以在官网直接copy过来,用main方法运行就好了,改一下你自己的数据源,文件输出位置,项目结构,还有表名这样

4.项目结构(controller,service,mapper,entity都是自动生成的)

service和mapper分别实现了IService和BaseMapper接口,所以里面已经内置很多curl的方法

5.使用

到这一步就已经完成了springboot+mybatis-plus的集成,下面就来看看如何使用

@Autowired
    private SysProvinceMapper sysProvinceMapper;

    @RequestMapping("testMybatisPlus")
    public void testMybatisPlus(){
        //条件查询
        Wrapper<SysProvince> wrapper=new QueryWrapper<>();
        ((QueryWrapper<SysProvince>) wrapper).eq("del_flag","0");
        System.out.println("查询:"+sysProvinceMapper.selectList(wrapper));


        //添加
        SysProvince province = new SysProvince();
        province.setProvinceName("外星省");
        province.setProvinceSort(1L);
        province.setCreateTime(LocalDateTime.now());
        province.setModifyTime(LocalDateTime.now());
        province.setDelFlag("0");
        sysProvinceMapper.insert(province);


        //更新
        SysProvince sysProvince = sysProvinceMapper.selectById(48);
        sysProvince.setDelFlag("1");
        sysProvinceMapper.updateById(sysProvince);
        
        
        //删除
        sysProvinceMapper.deleteById(48);

    }

 

6.分页插件和自定义maper.xml

上面已经配置了分页插件了

a.在mapper定义一个接口

    IPage<SysProvince> selectPage(Page page, @Param("delFlag") String delFlag);

b.新建一个mapper.xml在resource下的mapper文件夹下

<?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="com.example.select2.mapper.SysProvinceMapper">


    <!-- 根据区县ID查询所属的城市和省份名称 -->
    <select id="selectPage" parameterType="java.lang.String" resultType="com.example.select2.entity.SysProvince">
        select * from kzj_sys_province WHERE del_flag=#{delFlag}
    </select>
    
</mapper>

c.使用

 Page<SysProvince> p = new Page<>(1, 10);
 IPage<SysProvince> sysProvinceIPage = sysProvinceMapper.selectPage(p, "0");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章