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-sample-generator: 代码生成器示例 mybatis-plus-sample-crud: 完整 CRUD 示例 mybatis-plus-sample-wrapper: 条件构造器示例 mybatis-plus-sample-pagination: 分页功能示例 mybatis-plus-sample-...
mybatis-plus代码生成器模版代码
特性:无侵入、损耗小、强大的CRUD操作,支持lambda 形势调用、支持多种数据库,支持主键自动生成、支持ActiveRecord模式,支持自定义全局通用操作、支持关键词自动转义,内置代码生成器、内置分页插件、内置性能...
使用mybatis-plus代码生成器自动生成实体类,service, mapper, xml, 内含单表的增删改查和丰富的条件构造器
实现mybatis-plus代码生成器配置,可运行
赠送源代码: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 示例项目,简单易上手
MyBatis-Plus代码生成器
mybatis-plus3.5.2常用jar包,mybatis-plus-3.5.2.jar、mybatis-plus-annotation-3.5.2.jar、mybatis-plus-core-3.5.2.jar、mybatis-plus-extension-3.5.2.jar、mybatis-plus-generator-3.5.2.jar和源码包mybatis-...
赠送源代码:mybatis-plus-extension-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-extension-3.5.1.pom; 包含翻译后的API文档:mybatis-plus-extension-3.5.1-javadoc-API文档-中文(简体)-英语-对照...
使用方式:...引用mybatis-plus,如果需要根据实体类生成自定义controller、service、mapper、entity文件,需要设置自定义引擎文件,有多种格式,上传的资源是vm资源
赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-annotation-3.5.1.pom; 包含翻译后的API文档:mybatis-plus-annotation-3.5.1-javadoc-API文档-中文(简体)版.zip;...
mybatis,mybatis-plus代码生成器,已经整理好了,两种方式,下载之后看说明
mybatis-plus代码自动生成器,已配置好,在pom中导入相关依赖后修改代码中数据库信息即可直接使用。数据库名称和需要映射的数据表名称记得修改。 <!-- MyBatis-Plus代码生成器 --> <groupId>org.apache.velocity...
mybatis-plus源码(mybatis-plus-3.5.1.zip)
mybatis-plus代码生成器,自动生成controller,dao,mapper,service,impl,entity到项目中,修改一下数据库连接,项目路径,即可使用
赠送源代码: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文档-中文(简体)-...
提供修改数据库地址后可直接使用的代码,提供达梦7的驱动包 提供所需maven以来 驱动包放置仓库位置等