mybatis-plus代码生成器,mybatis-plus3.4自动生成代码,mybatis-plus3.4分页
================================
©Copyright 蕃薯耀 2020-10-21
http://fanshuyao.iteye.com/
一、Jar包依赖
<properties> <!-- 构建时编码 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 输出时编码 --> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!-- JDK版本 --> <java.version>1.8</java.version> <mybatisPlus.version>3.4.0</mybatisPlus.version> <shardingsphere.version>4.1.1</shardingsphere.version> </properties>
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatisPlus.version}</version> </dependency> <!--mybatis-plus 码生成器 添加 模板引擎依赖 这个需要增加模板引擎依赖,如freemarker--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatisPlus.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency>
二、代码生成器代码:
import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; 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.converts.OracleTypeConvert; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; import com.baomidou.mybatisplus.generator.config.rules.IColumnType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import com.lqy.ss.utils.DateUtils; import com.lqy.ss.utils.StrUtils; public class CodeGenerator { private static Logger log = Logger.getLogger(CodeGenerator.class); private static final String jdbcUserName = "root"; private static final String jdbcPassword = "root"; //表名,可以设置多个,通过英文逗号分隔 //数据库用户密码,必须使用表的所有者(Owner) private static final String tables = "my_user"; private static final String moduleName = "shardingSphere.";//模块名称,分业务,不要漏最后面一个点 private static final String tablePrefix = "";//表名前缀 /** * 代码生成器的配置常量 */ private static final String outPutDir = "/src/main/java"; //Oracle:jdbc:oracle:thin:@192.168.110.2:1521:ORAPLAN //mysql:jdbc:mysql://localhost:3306/mydbone?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&pinGlobalTxToPhysicalConnection=true&autoReconnect=true private static final String jdbcUrl = "jdbc:mysql://localhost:3306/sh1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&pinGlobalTxToPhysicalConnection=true&autoReconnect=true"; //oracle.jdbc.OracleDriver //oracle.jdbc.driver.OracleDriver //com.mysql.cj.jdbc.Driver private static final String jdbcDriverClassName = "com.mysql.jdbc.Driver"; private static final String parentPackage = "com.xxx.ss.biz"; private static final String authorName = jdbcUserName;//作者 private static final String mapperPattern = "%sDao";//dao文件命名格式 private static final String mapperName = moduleName + "dao"; private static final String xmlName = mapperName; private static final String serviceNamePattern = "%sService";//Service文件命名格式 private static final String serviceName = moduleName + "service"; private static final String implName = moduleName + "service.impl"; private static final String pojoName = moduleName + "entity"; private static final String controllerName = moduleName + "controller"; // 当前工程路径 配合outPutDir使用,例如多模块开发 Demo/test1,Demo/test2 // projectPath拿到的是Demo路径,把outPutDir设置成/test1即可 private static final String projectPath = System.getProperty("user.dir"); public static void generator() { // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(projectPath + outPutDir); gc.setAuthor(authorName); gc.setBaseResultMap(true); gc.setBaseColumnList(true); // 覆盖生成的文件 gc.setFileOverride(true); gc.setServiceName(serviceNamePattern); gc.setMapperName(mapperPattern); gc.setEnableCache(false);//是否在xml中添加二级缓存配置:false不生成 gc.setOpen(false);//true:生成文件后,自动打开文件夹 gc.setDateType(DateType.ONLY_DATE);//设置时间类型 //gc.setSwagger2(true);//设置生成Swagger2 Api注解 // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); //设置类型转换,默认不太好 //这个是Oracle的 /* dsc.setTypeConvert(new OracleTypeConvert() { @Override public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) { String fileTypeLower = fieldType.toLowerCase(); if(fileTypeLower.contains("number")) { //System.out.println("fileTypeLower = " + fileTypeLower); if(fileTypeLower.equals("number")) {//默认长度为38位,占用22个字节空间 return DbColumnType.LONG; } if(fileTypeLower.contains(",")) { return DbColumnType.DOUBLE; }else { String num = StrUtils.getNumberText(fileTypeLower); int numInt = Integer.parseInt(num); if(numInt == 1) { return DbColumnType.BYTE; } if(numInt > 1 && numInt <=4) { return DbColumnType.SHORT; } if(numInt > 4 && numInt <=9) { return DbColumnType.INTEGER; } if(numInt > 9 && numInt <=18) { return DbColumnType.LONG; } if(numInt > 18) { return DbColumnType.BIG_DECIMAL; } return DbColumnType.LONG; } } return super.processTypeConvert(globalConfig, fieldType); } }); */ dsc.setUrl(jdbcUrl); dsc.setDriverName(jdbcDriverClassName); dsc.setUsername(jdbcUserName); dsc.setPassword(jdbcPassword); // dsc.setSchemaName("public"); // 包配置 PackageConfig pc = new PackageConfig(); //pc.setModuleName(scanner("模块名")); pc.setParent(parentPackage); pc.setParent(parentPackage); pc.setMapper(mapperName); pc.setEntity(pojoName); pc.setService(serviceName); pc.setController(controllerName); pc.setServiceImpl(implName); pc.setXml(xmlName); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); //strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!"); strategy.setEntityLombokModel(false);//设置Lombok模式 strategy.setRestControllerStyle(true); strategy.setControllerMappingHyphenStyle(false); // 公共父类 //strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!"); // 写于父类中的公共字段 //strategy.setSuperEntityColumns("id"); strategy.setControllerMappingHyphenStyle(true); if(!StringUtils.isBlank(tablePrefix)) { strategy.setTablePrefix(tablePrefix); } //strategy.entityTableFieldAnnotationEnable(true); strategy.setEntityTableFieldAnnotationEnable(true); strategy.setInclude(tables.toUpperCase().split(","));//Oracle数据,表名一定要大写,且表名要对应创建的用户,否则不生成代码 InjectionConfig injectionConfig = new InjectionConfig() { @Override public void initMap() { Map<String, Object> map = new HashMap<String, Object>(); map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); this.setMap(map); } }; // 代码生成器 AutoGenerator mpg = new AutoGenerator(); mpg.setGlobalConfig(gc); mpg.setDataSource(dsc); mpg.setPackageInfo(pc); mpg.setStrategy(strategy); mpg.setCfg(injectionConfig); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); log.info("代码生成已经完成。" + DateUtils.formatDateTime(new Date())); } public static void main(String[] args) { generator(); } }
三、mybatis-plus3.4.0分页配置及Oracle序列增长配置
mybatis-plus3.4.0的分页发生了变化的,具体如下:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; @Configuration public class MybatisPlusConfig { private static Logger log = LoggerFactory.getLogger(MybatisPlusConfig.class); @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { log.info("初始化分页插件…"); MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return mybatisPlusInterceptor; } /** * 注入oracleKeyGenerator,自动生成序列主键 * @return */ /* @Bean public OracleKeyGenerator oracleKeyGenerator(){ log.info("初始化Oracle主键生成策略…"); return new OracleKeyGenerator(); } */ }
================================
©Copyright 蕃薯耀 2020-10-21
http://fanshuyao.iteye.com/
相关推荐
mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...
在使用Mybatis-Plus代码生成器前,需要确保已引入Mybatis-Plus的依赖。通常在Maven或Gradle项目中,会在pom.xml或build.gradle文件中添加对应的依赖项。例如,对于Maven项目,可以在pom.xml中添加以下依赖: ```xml...
总的来说,Mybatis-Plus代码生成器是Java开发中的得力助手,通过自动化的方式减少了重复劳动,提升了开发效率。同时,它的灵活性也允许开发者根据实际需求进行定制,适应各种项目场景。结合`pom.xml`和`src`目录中的...
本文档详细介绍了MyBatis-Plus代码生成器的配置方法,包括数据源配置、数据库表配置、包名配置、模板配置、全局策略配置和注入配置等。 首先,我们需要了解MyBatis-Plus代码生成器的几个核心配置类: 1. ...
在本项目中,"mybatis-plus自动生成代码(包含swaager注解)" 意味着我们将探讨如何利用 MyBatis-Plus 的代码生成器来创建实体类、Service、Mapper、XML 文件,并且这些生成的代码还将集成 Swagger 注解,以便于 API ...
首先,我们要理解Mybatis-plus代码生成器的基本原理。它通过读取数据库中的表结构信息,然后按照预设的模板生成对应的Java实体类、Mapper接口、Mapper XML文件以及Service和Controller层的代码。这样,我们就不需要...
mybatis-plus-sample-generator: 代码生成器示例 mybatis-plus-sample-crud: 完整 CRUD 示例 mybatis-plus-sample-wrapper: 条件构造器示例 mybatis-plus-sample-pagination: 分页功能示例 mybatis-plus-sample-...
标题"mybatis-plus 达梦 代码生成"表明了本文将要讨论的是如何使用Mybatis-Plus框架结合达梦数据库来自动生成代码。Mybatis-Plus是Mybatis的一个增强工具,它在Mybatis的基础上做了很多简化操作,如自动CRUD(创建、...
而“mybatis-plus代码生成器”则是MyBatis-Plus库中的一个重要组成部分,用于自动生成常见的Java代码,包括Controller、DAO、Mapper、Service、ServiceImpl和Entity类,大大减少了手动编写这些重复性工作的负担。...
mybatis-plus-boot-starter.jar 各个版本下载, SpringBoot 集成 MybatisPlus jar 包下载, Mybatis-Plus(简称MP)是一个基于MyBatis的增强工具库,它简化了与数据库的交互操作并提供了一系列增强功能,使开发者...
特性:无侵入、损耗小、强大的CRUD操作,支持lambda 形势调用、支持多种数据库,支持主键自动生成、支持ActiveRecord模式,支持自定义全局通用操作、支持关键词自动转义,内置代码生成器、内置分页插件、内置性能...
在本项目中,我们关注的是 "mybatis-plus 代码生成器",这是一个强大的工具,能够自动生成基于 MyBatis-Plus 的实体类、Mapper 接口及实现、XML 映射文件,从而极大地提高了开发效率,减少了手动编写重复代码的时间...
这个“mybatis-plus代码自动生成工具”则是专门针对Mybatis-Plus的辅助开发工具,能够自动生成Model、Mapper、Mapper XML、Service以及Controller等各类基础代码,帮助开发者快速构建项目结构。 1. **MyBatis-Plus...
要自定义Mybatis-Plus的模板,首先需要了解Mybatis-Plus代码生成器的工作原理。它通过解析数据库表信息,使用预先定义好的模板生成对应的Java代码。这些模板通常位于`templates`目录下,包括实体类模板、Mapper接口...
"mybatis-plus代码生成器"是一个关键特性,它的核心作用在于根据数据库表的信息自动生成对应的Java代码。通过配置,你可以指定数据库连接信息,选择需要生成代码的表,然后生成的代码将包括以下部分: 1. **实体类...
Mybatis-Plus是一个Mybatis的增强工具,在保留Mybatis原有特性的同时,提供了很多便捷的功能,如代码生成器、分页插件等,极大地提高了开发的效率,特别是在处理单表操作时。 2. Mybatis-Plus的核心功能: - 自动...
在下载的压缩包"mybatis,mybatis-plus代码生成器"中,可能包含了以下内容: 1. MyBatis Generator的配置文件(generatorConfig.xml):这个文件定义了数据库连接信息、需要生成代码的表、生成的Java类模板等。 2. ...
7. **扩展性**: MyBatis-Plus 提供的不仅仅是基础的 CRUD 功能,还有分页查询、条件构造器(QueryWrapper)等高级特性,使得代码更加简洁和高效。 总之,Oracle 结合 MyBatis-Plus 的逆向工程是 Java 开发中的一个...
赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-boot-starter-3.5.1.pom; 包含翻译后的API文档:mybatis-plus-boot-starter-3.5.1-javadoc-API文档-中文(简体)版...
spring boot快速上手示例,集成了swagger+knife4j接口文档,集成mybatis-plus持久化,统一的数据返回封装,集成mybatis-plus-generator代码生成器,加入了lombok框架,一个完成的sping boot 示例项目,简单易上手