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

框架结构

<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";//数据库urlString 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();}}
mybatis-plus:global-config:enable-sql-runner: trueconfiguration:#开启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、启动类:
("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技术仓库
微信扫描下方的二维码阅读本文

Comments NOTHING