MyBatisPlus简介

MyBatis 最佳搭档,只做增强不做改变,为简化开发、提高效率而生。

框架结构

POM.XML依赖引入
 <dependency>      <groupId>com.baomidou</groupId>      <artifactId>mybatis-plus-boot-starter</artifactId>      <version>3.4.2</version>  </dependency>

如果需要自动生成基础类,如实体类、Mapper、Service等。还需引入如下依赖:

 <!-- mybatis plus 代码生成器 -->  <dependency>      <groupId>com.baomidou</groupId>      <artifactId>mybatis-plus-generator</artifactId>      <version>3.5.2</version>  </dependency>  <!-- mybatis plus 代码生成器模板 -->  <dependency>      <groupId>org.freemarker</groupId>      <artifactId>freemarker</artifactId>      <version>2.3.28</version>  </dependency>  <dependency>      <groupId>org.apache.velocity</groupId>      <artifactId>velocity-engine-core</artifactId>      <version>2.3</version>  </dependency>

生成工具类

示例中,按自己的需求配置路径和表

package com.mkj.publicservice.utils;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.baomidou.mybatisplus.generator.FastAutoGenerator;import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;import java.util.ArrayList;import java.util.List;/** * @author: mkj */public class GeneratorTest {    public static void main(String[] args) {       /*            特别注意:生成的时间类型均为:“LocalDateTime”格式,需要假如以下注解方可正常使用            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")            @JsonDeserialize(using = LocalDateTimeDeserializer.class)            @JsonSerialize(using = LocalDateTimeSerializer.class)        */        //数据库连接        String url = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";//数据库url        String username = "root";//账号        String password = "root";//密码        String module = "chat";//模块名        //全局配置参数        String author = "mkj";//作者        String outputDir = "D:\yfone\chat";//指定输出目录        //包配置参数        String parent = "com.mkj";//父包名        String moduleName = "publicservice";//父包模块名        String entity = "entity";//Entity 实体类包名        String mapper = "mapper";//Mapper 包名        String mapperXml = "mapper";//Mapper XML 包名        String service = "service";//Service 包名        String serviceImpl = "service.impl";//Service Impl 包名        /*String controller = "controller";//Controller 包名*/        //要生成的数据库表        List<String> tables = new ArrayList<>();        tables.add("student");        //开始生成        FastAutoGenerator.create(url,username,password)                //全局配置                .globalConfig(builder -> {                    builder.author(author)                            .outputDir(outputDir)                            /*.enableSwagger()//开启swagger*/                            .commentDate("yyyy-MM-dd");//注释日期                })                //包配置                .packageConfig(builder -> {                    builder.parent(parent)                            .moduleName(moduleName)                            .entity(entity)                            .mapper(mapper)                            .xml(mapperXml)                            .service(service)                            .serviceImpl(serviceImpl)                    /*.controller(controller)*/;                })                //策略配置                .strategyConfig(builder -> {                    builder.addInclude(tables)                            //开启生成实体类                            .entityBuilder()                            .enableLombok()//开启 lombok 模型                            .enableTableFieldAnnotation()//开启生成实体时生成字段注解                            //开启生成mapper                            .mapperBuilder()                            .enableBaseResultMap()//启用 BaseResultMap 生成                            .superClass(BaseMapper.class)//设置父类                            .enableMapperAnnotation()//开启 @Mapper 注解                            .formatMapperFileName("%sMapper")//格式化 mapper 文件名称                            .formatXmlFileName("%sMapper")//格式化 xml 实现类文件名称                            //开启生成service及impl                            .serviceBuilder()                            .formatServiceFileName("%sService")//格式化 service 接口文件名称                            .formatServiceImplFileName("%sServiceImpl");//格式化 service 实现类文件名称                            /*//开启生成controller                            .controllerBuilder()                            // 映射路径使用连字符格式,而不是驼峰                            .enableHyphenStyle()                            .formatFileName("%sController")//格式化文件名称                            .enableRestStyle();*/                })                .templateEngine(new VelocityTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板                .templateConfig(builder -> builder.controller(""))//关闭生成controller                .execute();    }}
application.yml配置
mybatis-plus:  global-config:    enable-sql-runner: true  configuration:    #开启sql日志    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl    #开启驼峰命名法与下划线命名法的映射支持    map-underscore-to-camel-case: true  # 配置实体别名  type-aliases-package: com.mkj.publicservice.entity  # 配置mapper映射位置  mapper-locations: classpath*:com/mkj/publicservice/mapper/**/*Mapper.xml

这里单独说下xml的存放位置,一般情况下默认都会在resources下建mapper文件夹然后进行映射。但是这种方式在后期找mapper中接口对应的xml时比较费劲。因为在两个文件夹下面,如果多的话,看的眼都花。

试想如果mapper接口和xml在同一个包下,找的时候是不是方便多了,因为两个文件会挨着。如下图:

说下这种如何配置:

1、POM.XML添加

        <resources>            <resource>                <directory>src/main/java</directory>                <includes>                    <include>**/*.xml</include>                </includes>            </resource>        </resources>

2、配置文件

mapper-locations 配置实际路径即可。注意路径是“/”,不要输成“.”了。

使用

1、启动类:

@SpringBootApplication@MapperScan("com.mkj.publicservice.mapper")//多个可用,分割public class PublicServiceApplication {    public static void main(String[] args) {        SpringApplication.run(PublicServiceApplication.class, args);    }}

2、用工具生成实体类、Mapper接口、Service,ServiceImpl

3、调用MyBatisPlus方法

@Resourceprivate StudentService studentService;//列表List<Student> studentList = studentService.list();//添加或修改studentService.saveOrUpdate(student);//获取实体 Student student = studentService.getById(id); //删除 studentService.removeById(id);

作者介绍

90年,属马,上班族,怀揣梦想,坚持用心分享,一直想通过自己的努力做出一些成绩。佩服通过自己的坚持实现梦想的人。相信滴水穿石,相信点滴的积累终有一天可以成为自己炫耀的资本!

本篇文章来源于微信公众号: Java技术仓库



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2024-08-02