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");

 

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