1.说明

本文基于SpringBoot集成MyBatis-Plus代码生成器,
把原来生成Entity、Mapper、Mapper XML、Service、Controller等各个模块的代码,
修改为不使用Mapper作为名称,
而使用Dao作为名称,
下面给出代码生成器的代码。

2.代码修改点

// 1.全局配置
GlobalConfig gc = new GlobalConfig();
gc.setMapperName("%sDao");// 3.包配置
PackageConfig pc = new PackageConfig();
pc.setMapper("dao");// 4.自定义配置
focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化return projectPath + "/src/main/resources/mapper/" + tableInfo.getMapperName() + StringPool.DOT_XML;}
});

3.生成文件

在工程中看到新生成如下文件:

src/main/resources/mapper/RoleDao.xml
src/main/java/com/yuwen/demo/entity/Role.java
src/main/java/com/yuwen/demo/dao/RoleDao.java
src/main/java/com/yuwen/demo/service/RoleService.java
src/main/java/com/yuwen/demo/service/impl/RoleServiceImpl.java
src/main/java/com/yuwen/demo/controller/RoleController.java

4.CodeGenerator.java代码

package com.example.demo.uitl.generate;import java.util.ArrayList;
import java.util.List;import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;/*** * 代码生成器 ,先修改下面的常量配置参数,然后执行 main方法*/
public class CodeGenerator {// 数据库连接配置private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";private static final String JDBC_URL = "jdbc:mysql://10.21.13.14:3306/demodb?useUnicode=true&useSSL=false&characterEncoding=utf8";private static final String JDBC_USER_NAME = "demo";private static final String JDBC_PASSOWRD = "demo123456";// 包名和模块名private static final String PACKAGE_NAME = "com.yuwen";private static final String MODULE_NAME = "demo";// 表名,多个表使用英文逗号分割private static final String TBL_NAMES = "tbl_role";// 表名的前缀,从表生成代码时会去掉前缀private static final String TABLE_PREFIX = "tbl_";// 生成代码入口main方法public static void main(String[] args) {// 0.代码生成器AutoGenerator mpg = new AutoGenerator();// 1.全局配置GlobalConfig gc = getGlobalConfig();mpg.setGlobalConfig(gc);// 2.数据源配置DataSourceConfig dsc = getDataSourceConfig();mpg.setDataSource(dsc);// 3.包配置PackageConfig pc = getPackageConfig();mpg.setPackageInfo(pc);// 4.自定义配置InjectionConfig cfg = getInjectionConfig();mpg.setCfg(cfg);// 5.模板配置TemplateConfig templateConfig = getTemplateConfig();mpg.setTemplate(templateConfig);// 使用Freemarker模板引擎mpg.setTemplateEngine(new FreemarkerTemplateEngine());// 6.策略配置StrategyConfig strategy = getStrategyConfig();mpg.setStrategy(strategy);// 7.开始生成代码mpg.execute();}/** 1.全局配置 */private static GlobalConfig getGlobalConfig() {GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir(projectPath + "/src/main/java");gc.setAuthor("yuwen");gc.setOpen(false);// 自定义生成的ServiceName,去掉默认的ServiceName前面的Igc.setServiceName("%s" + ConstVal.SERVICE);gc.setMapperName("%sDao");// gc.setSwagger2(true); 实体属性 Swagger2 注解return gc;}/** 2.数据源配置 */private static DataSourceConfig getDataSourceConfig() {DataSourceConfig dsc = new DataSourceConfig();dsc.setDriverName(JDBC_DRIVER);dsc.setUrl(JDBC_URL);// dsc.setSchemaName("public");dsc.setUsername(JDBC_USER_NAME);dsc.setPassword(JDBC_PASSOWRD);return dsc;}/** 3.包配置 */private static PackageConfig getPackageConfig() {PackageConfig pc = new PackageConfig();// 生成PACKAGE_NAME.MODULE_NAME的包路径pc.setParent(PACKAGE_NAME);pc.setModuleName(MODULE_NAME);pc.setMapper("dao");return pc;}/** 4.自定义配置 */private static InjectionConfig getInjectionConfig() {// 这里模板引擎使用的是freemarkerString templatePath = "/templates/mapper.xml.ftl";// 自定义输出配置List<FileOutConfig> focList = new ArrayList<>();String projectPath = System.getProperty("user.dir");// 自定义配置会被优先输出focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {// 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化return projectPath + "/src/main/resources/mapper/" + tableInfo.getMapperName() + StringPool.DOT_XML;}});InjectionConfig cfg = new InjectionConfig() {@Overridepublic void initMap() {// to do nothing}};cfg.setFileOutConfigList(focList);return cfg;}/** 5.模板配置 */private static TemplateConfig getTemplateConfig() {TemplateConfig templateConfig = new TemplateConfig();// 配置自定义输出模板// 指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别// templateConfig.setEntity("templates/entity2.java");// templateConfig.setService();// templateConfig.setController();templateConfig.setXml(null);return templateConfig;}/** 6.策略配置 */private static StrategyConfig getStrategyConfig() {StrategyConfig strategy = new StrategyConfig();// 下划线转驼峰命名strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setEntityLombokModel(false);strategy.setRestControllerStyle(true);strategy.setInclude(TBL_NAMES.split(","));strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(TABLE_PREFIX);return strategy;}}

5.src/main/resources/mapper/RoleDao.xml

<?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.yuwen.demo.dao.RoleDao"></mapper>

6.src/main/java/com/yuwen/demo/entity/Role.java

package com.yuwen.demo.entity;import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;/*** <p>* * </p>** @author yuwen* @since 2020-07-13*/
@TableName("TBL_ROLE")
public class Role implements Serializable {private static final long serialVersionUID = 1L;/*** 主键ID*/private Long id;/*** 角色名*/private String roleName;/*** 角色描述*/private String roleDescribe;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName = roleName;}public String getRoleDescribe() {return roleDescribe;}public void setRoleDescribe(String roleDescribe) {this.roleDescribe = roleDescribe;}@Overridepublic String toString() {return "Role{" +"id=" + id +", roleName=" + roleName +", roleDescribe=" + roleDescribe +"}";}
}

7.src/main/java/com/yuwen/demo/dao/RoleDao.java

package com.yuwen.demo.dao;import com.yuwen.demo.entity.Role;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;/*** <p>*  Mapper 接口* </p>** @author yuwen* @since 2020-07-13*/
public interface RoleDao extends BaseMapper<Role> {}

8.src/main/java/com/yuwen/demo/service/RoleService.java

package com.yuwen.demo.service;import com.yuwen.demo.entity.Role;
import com.baomidou.mybatisplus.extension.service.IService;/*** <p>*  服务类* </p>** @author yuwen* @since 2020-07-13*/
public interface RoleService extends IService<Role> {}

9.src/main/java/com/yuwen/demo/service/impl/RoleServiceImpl.java

package com.yuwen.demo.service.impl;import com.yuwen.demo.entity.Role;
import com.yuwen.demo.dao.RoleDao;
import com.yuwen.demo.service.RoleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;/*** <p>*  服务实现类* </p>** @author yuwen* @since 2020-07-13*/
@Service
public class RoleServiceImpl extends ServiceImpl<RoleDao, Role> implements RoleService {}

10.src/main/java/com/yuwen/demo/controller/RoleController.java

package com.yuwen.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** <p>*  前端控制器* </p>** @author yuwen* @since 2020-07-13*/
@RestController
@RequestMapping("/demo/role")
public class RoleController {}

http://www.taodudu.cc/news/show-1251002.html

相关文章:

  • SpringCloud创建Gateway模块
  • Eclipse控制台Console使用说明
  • POI导入导出Excel(HSSF格式,User Model方式)
  • 正则表达式常用汇总
  • 接口文档编写技巧
  • MySQL客户端mysql常用命令
  • HAproxy开启日志记录
  • SpringCloud创建Config模块
  • SpringCloud创建Eureka Client服务注册
  • SpringCloud创建Config Client配置读取
  • SpringCloud创建Config Client通过Eureka访问Config
  • SpringCloud集成Security安全(Config配置中心)
  • SpringCloud集成Security安全(Eureka注册中心)
  • SpringCloud创建Config多客户端公共配置
  • SpringCloud创建Config读取本地配置
  • SpringCloud使用汇总Config
  • SpringCloud创建Eureka模块集群
  • Eclipse启动SpringCloud微服务集群的方法
  • SpringCloud发现服务代码(EurekaClient,DiscoveryClient)
  • SpringBoot集成Actuator监控管理
  • SpringBoot集成Actuator端点配置
  • SpringBoot集成Actuator健康指示器health
  • gRPC创建Java RPC服务
  • ProtoBuf3语法指南(Protocol Buffers)_上
  • ProtoBuf3语法指南(Protocol Buffers)_下
  • gPRC基本介绍
  • Log4j2日志框架集成Slf4j日志门面
  • XML解析的四种方式
  • XML解析和创建的JAXB方式
  • 【转载】JSON介绍

SpringBoot集成MyBatis-Plus代码生成器(Dao)相关推荐

  1. SpringBoot集成Mybatis项目实操

    本文为<从零打造项目>系列第三篇文章,首发于个人网站. <从零打造项目>系列文章 比MyBatis Generator更强大的代码生成器 SpringBoot项目基础设施搭建 ...

  2. java整合mybatis,springboot集成mybatis

    # springboot集成mybatis springboot基础mybatis还是很简单的,比之前springmvc集成mybatis要少很多配置,只要大家按照步骤一步一步来,几分钟就 能实现.具 ...

  3. springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三)

    springboot集成mybatis源码分析-mybatis的mapper执行查询时的流程(三) 例: package com.example.demo.service;import com.exa ...

  4. springboot集成mybatis源码分析-启动加载mybatis过程(二)

    springboot集成mybatis源码分析-启动加载mybatis过程(二) 1.springboot项目最核心的就是自动加载配置,该功能则依赖的是一个注解@SpringBootApplicati ...

  5. springboot集成mybatis源码分析(一)

    springboot集成mybatis源码分析(一) 本篇文章只是简单接受使用,具体源码解析请看后续文章 1.新建springboot项目,并导入mybatis的pom配置 配置数据库驱动和mybat ...

  6. SpringBoot集成Mybatis用法笔记

    今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...

  7. Java 捕获 mybatis异常_3 springboot集成mybatis和全局异常捕获

    mybatis有两种方式,一种是基于XML,一种是基于注解 springboot集成mybatis 首先先创建表,这里都简化了 DROP TABLE IF EXISTS `user`; CREATE ...

  8. 一个项目了解 SpringBoot 集成 MyBatis

    SpringBoot 集成 MyBatis 创建项目 1.引入依赖 mybatis-spring-boot-starter 依赖 完整的 pom.xml 2.配置文件 加入mybatis配置 完整的配 ...

  9. SpringBoot教程(十一) | SpringBoot集成Mybatis

    上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...

  10. Springboot 集成 mybatis 开启二级缓存(redis)

    首先来了解下mybatis 缓存,mybatis缓存分为一级缓存和二级缓存.一级缓存是默认开启的,无需其他配置操作,二级缓存则需要手动设置开启. 一级缓存原理: Mybatis的一级缓存是指同一个Sq ...

最新文章

  1. 用 Python 制作数据大屏,超简单
  2. leetcode 454 四数相加
  3. mysql 复制诊断_诊断Mysql复制问题
  4. 迅雷2014校园招聘笔试题
  5. 基于I2C协议的EEPROM驱动控制
  6. java 调用plc程序_从老师傅那里偷学来的PLC宝贵经验!
  7. Leetcode 413.等差数列划分
  8. MDI窗体容器和权限设置.avi
  9. Orcad Capture CIS 绘制原理图库
  10. Python脚本提取氨基酸序列的 因子复杂度
  11. 如何高效的利用谷歌学术搜索文献
  12. 背包问题(最大装载价值)
  13. 电脑分区了如何恢复?电脑新手村教程
  14. xxx-1.0-SNAPSHOT.jar中没有主清单属性的解决方法
  15. 【按键精灵学习记录】以DOTA2人机为例
  16. 奥利给! loading效果这么搞真的太棒了
  17. 分享几个NB的素材网站
  18. 按图搜索1688商品(拍立淘) 中国站
  19. python函数参数顺序_Python 中的参数深入、取值顺序、内置函数等
  20. 南方东英恒生科技指数每日杠杆(2x)产品(股票代码: 7226.hk)和南方东英恒生科技指数每日反向(-2x) 产品(股票代码: 7552.hk)将在港交所上市

热门文章

  1. Java基础-异常处理机制
  2. Caused by: org.springframework.beans.NotWritablePropertyException
  3. WinForm应用程序框架设计之WinAction(一:显示列表窗体)
  4. 备用小知识[不断更新***]
  5. [Vue.js] 基础 -- 案例之Tab选项卡
  6. 简单的选项卡功能实现
  7. JavaScript(四)—— JavaScript 内置对象/JavaScript 简单数据类型与复杂类型
  8. 入门机器学习(四)--Logistic回归
  9. C++头文件和源文件,编译过程
  10. 机器学习实战11-训练深层神经网络