MyBatis Plus 2.3 个人笔记-01-代码生成器
- sb_mybatis_puls2.3
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.huarui</groupId> <artifactId>sb_mybatis_puls2.3</artifactId> <version>0.0.1-SNAPSHOT</version> <name>sb_mybatis_puls2.3</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mybatis plus 2.3 start--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>2.3</version> </dependency> <!--mybatis plus 2.3 end--> <!-- freemarker 代码生成器模板 start--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> <!-- freemarker 代码生成器模板 end--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
server: port: 8080 #mysql spring: datasource: url: jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8 username: youxiu326 password: zz123456.ZZ driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml # 如果是放在resource目录 classpath:/mapper/*Mapper.xml mapper-locations: classpath:/com/huarui/mybatisplus/mapper/*Mapper.xml #实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.huarui.mybatisplus.entity global-config: #主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID"; id-type: 2 #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断" field-strategy: 2 #驼峰下划线转换 db-column-underline: true #mp2.3+ 全局表前缀 mp_ table-prefix: tal_ #刷新mapper 调试神器 #refresh-mapper: true #数据库大写下划线转换 capital-mode: true # Sequence序列接口实现类配置 key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator #逻辑删除配置(下面3个配置) logic-delete-value: -1 logic-not-delete-value: 1 #注入自定义SQL sql-injector: com.huarui.mybatisplus.configuration.MySqlInjector #自定义填充策略接口实现 meta-object-handler: com.huarui.mybatisplus.configuration.MyMetaObjectHandler configuration: #配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId) map-underscore-to-camel-case: true cache-enabled: false #配置JdbcTypeForNull, oracle数据库必须配置 jdbc-type-for-null: 'null' # 配置slq打印日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
/* Navicat MySQL Data Transfer Source Server : 阿里云 Source Server Version : 50724 Source Host : youxiu326.xin:3306 Source Database : mybatis_plus Target Server Type : MYSQL Target Server Version : 50724 File Encoding : 65001 Date: 2019-02-17 15:59:52 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for tbl_employee -- ---------------------------- DROP TABLE IF EXISTS `tbl_employee`; CREATE TABLE `tbl_employee` ( `id` varchar(20) NOT NULL, `last_name` varchar(50) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, `gender` char(1) DEFAULT NULL, `age` int(11) DEFAULT NULL, `version` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tbl_employee -- ---------------------------- INSERT INTO `tbl_employee` VALUES ('1', '李老师', 'youxiu326@163.com', '1', '35', '1'); INSERT INTO `tbl_employee` VALUES ('1096995791036706818', 'MP', 'mp@atguigu.com', null, null, '1'); INSERT INTO `tbl_employee` VALUES ('1096998099921383425', '宋老师', 'sls@atguigu.com', '1', '35', '1'); INSERT INTO `tbl_employee` VALUES ('1096999885201649665', '玛利亚老师', 'mly@sina.com', '0', '22', null); INSERT INTO `tbl_employee` VALUES ('1097000111899598849', '玛利亚老师', 'mly@sina.com', '0', '22', null); INSERT INTO `tbl_employee` VALUES ('2', 'Jerry', 'jerry@atguigu.com', '0', '25', '1'); INSERT INTO `tbl_employee` VALUES ('3', 'TomAA', 'tomAA@sina.com', '1', '22', '3'); INSERT INTO `tbl_employee` VALUES ('4', '苍老师', 'cls@sina.com', '0', '35', '1'); -- ---------------------------- -- Table structure for tbl_user -- ---------------------------- DROP TABLE IF EXISTS `tbl_user`; CREATE TABLE `tbl_user` ( `id` varchar(20) NOT NULL, `name` varchar(50) DEFAULT NULL, `email` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, `deleteFlag` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tbl_user -- ---------------------------- INSERT INTO `tbl_user` VALUES ('1', '小日', 'aaaaaa@.qq.com', '28', '1'); INSERT INTO `tbl_user` VALUES ('2', '小日2', 'aaaaaa@.qq.com', '22', '1'); INSERT INTO `tbl_user` VALUES ('3', '小日3', 'abbbaa@.qq.com', '22', '-1'); INSERT INTO `tbl_user` VALUES ('4', 'youxiu326', 'niubi@.qq.com', '22', null);
/** * * 代码生成器 2.3版 * * Created by youxiu326 on 2019/2/17. */ public class MpGenerator { public static void main(String[] args) { //1. 全局配置 GlobalConfig config = new GlobalConfig(); config.setActiveRecord(true) // 是否支持AR模式 .setAuthor("youxiu326@163.com") // 作者 .setOutputDir("D:\\sortware\\IDEA\\package\\sb_mybatis_puls2.3\\src\\main\\java") // 生成路径 .setFileOverride(true) // 文件覆盖 .setEnableCache(false)// XML 二级缓存 .setActiveRecord(true)// 不需要ActiveRecord特性的请改为false .setIdType(IdType.ID_WORKER) // 主键策略 内容为空自动填充(默认配置) .setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I (%s 会自动填充表实体属性) // IEmployeeService .setBaseResultMap(true) //是否生成mapper result .setBaseColumnList(true); //是否生成mapper 查询列 //2. 数据源配置 DataSourceConfig dsConfig = new DataSourceConfig(); dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型 .setDriverName("com.mysql.jdbc.Driver") .setUrl("jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8") .setUsername("youxiu326") .setPassword("zz123456.ZZ"); //3. 策略配置 StrategyConfig stConfig = new StrategyConfig(); stConfig.setCapitalMode(true) //全局大写命名 .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线 .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略 .setTablePrefix("tbl_") .setInclude(new String[] { "tbl_user"}); // 生成的表 //4. 包名策略配置 PackageConfig pkConfig = new PackageConfig(); pkConfig.setParent("com.huarui.mybatisplus") .setMapper("mapper") .setService("service") .setController("controller") .setEntity("entity") .setXml("mapper"); //5. 整合配置 AutoGenerator ag = new AutoGenerator(); ag.setTemplateEngine(new FreemarkerTemplateEngine()) .setGlobalConfig(config) .setDataSource(dsConfig) .setStrategy(stConfig) .setPackageInfo(pkConfig); //6. 执行 ag.execute(); } }
执行成功后,自动生成 entity mapper service controller