亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL)

瀏覽:2日期:2023-07-03 17:34:45
目錄一、創建表二、創建Spring Boot工程三、引入逆向工程依賴四、代碼中完成逆向工程配置五、測試

MyBatis-Plus是MyBatis的增強工具,Generator通過MyBatis-Plus快速生成Entity、Mapper、Mapper XML、Service、Controller等模塊的代碼,方便快捷。

一、創建表

我們先創建數據庫表:sys_log、sys_user

CREATE TABLE `sys_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL COMMENT ’用戶名’, `operation` varchar(50) DEFAULT NULL COMMENT ’用戶操作’, `method` varchar(200) DEFAULT NULL COMMENT ’請求方法’, `params` varchar(5000) DEFAULT NULL COMMENT ’請求參數’, `time` bigint(20) NOT NULL COMMENT ’執行時長(毫秒)’, `ip` varchar(64) DEFAULT NULL COMMENT ’IP地址’, `create_date` datetime DEFAULT NULL COMMENT ’創建時間’, PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=66720 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;CREATE TABLE `sys_user` ( `id` varchar(255) NOT NULL, `company_id` varchar(64) NOT NULL COMMENT ’歸屬公司’, `office_id` varchar(64) NOT NULL COMMENT ’歸屬部門’, `login_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT ’唯一登錄名’, `password` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT ’密碼’, `no` varchar(100) DEFAULT NULL COMMENT ’工號’, `name` varchar(100) NOT NULL COMMENT ’姓名’, `email` varchar(200) DEFAULT NULL COMMENT ’郵箱’, `phone` varchar(200) DEFAULT NULL COMMENT ’電話’, `mobile` varchar(200) DEFAULT NULL COMMENT ’手機’, `user_type` char(1) DEFAULT NULL COMMENT ’用戶類型’, `photo` varchar(1000) DEFAULT NULL COMMENT ’用戶頭像’, `login_ip` varchar(100) DEFAULT NULL COMMENT ’最后登陸IP’, `login_date` datetime DEFAULT NULL COMMENT ’最后登陸時間’, `login_flag` varchar(64) DEFAULT NULL COMMENT ’是否可登錄’, `create_by` varchar(64) NOT NULL COMMENT ’創建者’, `create_time` datetime NOT NULL COMMENT ’創建時間’, `update_by` varchar(64) NOT NULL COMMENT ’更新者’, `update_date` datetime NOT NULL COMMENT ’更新時間’, `remarks` varchar(255) DEFAULT NULL COMMENT ’備注信息’, `del_flag` char(1) NOT NULL DEFAULT ’0’ COMMENT ’刪除標記’, `device_alias` varchar(255) DEFAULT NULL, `device_type` varchar(255) DEFAULT NULL, `token` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, KEY `sys_user_office_id` (`office_id`) USING BTREE, KEY `sys_user_login_name` (`login_name`) USING BTREE, KEY `sys_user_company_id` (`company_id`) USING BTREE, KEY `sys_user_update_date` (`update_date`) USING BTREE, KEY `sys_user_del_flag` (`del_flag`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=’用戶表’;二、創建Spring Boot工程

創建Spring Boot項目,網上很多教程,這里不再贅述。

三、引入逆向工程依賴

MyBatis-Plus本來是集成了代碼生成器的,但是在3.0.3以后的版本移除了對應的依賴,需要我們手動添加相關的依賴:

<!--就不需要手動引入mybatis --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.3.2</version></dependency><!--mybatisplus 代碼生成器--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version></dependency>

添加模板引擎:

<!-- 模板引擎 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version></dependency>

全部依賴如下:

<?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> <groupId>com.gaspipn.app</groupId> <artifactId>Generator</artifactId> <version>1.0-SNAPSHOT</version> <!--<name>GeneratorCommon</name> <description>GeneratorCommon</description>--> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent> <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><mybatisplus.spring.boot.version>1.0.5</mybatisplus.spring.boot.version><mybatisplus.version>2.2.0</mybatisplus.version><mysql.version>8.0.11</mysql.version><mssql.version>4.0</mssql.version><oracle.version>11.2.0.3</oracle.version><druid.version>1.1.10</druid.version><quartz.version>2.3.0</quartz.version><commons.lang.version>2.6</commons.lang.version><commons.fileupload.version>1.2.2</commons.fileupload.version><commons.io.version>2.5</commons.io.version><commons.codec.version>1.10</commons.codec.version><commons.configuration.version>1.10</commons.configuration.version><shiro.version>1.4.0</shiro.version><jwt.version>0.7.0</jwt.version><kaptcha.version>0.0.9</kaptcha.version><qiniu.version>[7.2.0, 7.2.99]</qiniu.version><aliyun.oss.version>2.8.3</aliyun.oss.version><qcloud.cos.version>4.4</qcloud.cos.version><swagger.version>2.7.0</swagger.version><joda.time.version>2.9.9</joda.time.version><fastjson.version>1.2.47</fastjson.version><hutool.version>4.1.1</hutool.version><!--wagon plugin 配置--><service-path>/work/renren</service-path><pack-name>${project.artifactId}-${project.version}.jar</pack-name><remote-addr>localhost:22</remote-addr><remote-username>root</remote-username><remote-passwd>123456</remote-passwd> </properties> <dependencies><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.14.RELEASE</version></dependency><!-- 模板引擎 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.1.5.RELEASE</version></dependency><dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version></dependency><!--就不需要手動引入mybatis --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.3.2</version></dependency><!--mybatisplus 代碼生成器--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version></dependency><!-- mysql依賴 --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version></dependency><!-- 連接池和fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.31</version></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version></dependency><!-- lombok模型 --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version></dependency><!--slf4j--><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version></dependency><!-- swagger --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.10.5</version></dependency><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.10.5</version></dependency><dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.24</version></dependency><dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.24</version></dependency><!--postgresql數據庫--><dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId></dependency> </dependencies></project>四、代碼中完成逆向工程配置

代碼里面的注釋已經很全面,就不再進行代碼的詳細解析了,如下:

package com.johan.generator;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.InjectionConfig;import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;import com.baomidou.mybatisplus.generator.config.po.TableInfo;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 java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * @author JohanChan * @ProjectName Generator * @Description MySQL/PostGre 生成演示 * @time 2021/7/7 16:49 */public class GeneratorCommon { /** * <p> Mr.Chen * MySQL/PostGre 生成演示 * </p> */ //獲取 項目絕對路徑 private static String canonicalPath = ''; public static void main(String[] args) {//獲取項目路徑try { canonicalPath = new File('').getCanonicalPath();} catch (Exception e) { e.printStackTrace();}System.out.println('canonicalPath=' + canonicalPath);//String filePath = canonicalPath+'mybatisPlusGersrcmain';String filePath = canonicalPath + 'srcmain';AutoGenerator mpg = new AutoGenerator();// 選擇 freemarker 引擎,默認 Veloctiy//mpg.setTemplateEngine(new FreemarkerTemplateEngine());// 全局配置GlobalConfig gc = new GlobalConfig();gc.setAuthor('Johan');//作者名gc.setSwagger2(true); //實體屬性 Swagger2 注解gc.setOutputDir(filePath + 'java');//代碼生成路徑gc.setFileOverride(true);// 是否覆蓋同名文件,默認是falsegc.setActiveRecord(true);// 不需要ActiveRecord特性的請改為falsegc.setEnableCache(false);// XML 二級緩存gc.setBaseResultMap(true);// XML ResultMapgc.setBaseColumnList(false);// XML columListgc.setOpen(false);//生成后打開文件夾/* 自定義文件命名,注意 %s 會自動填充表實體屬性! */gc.setControllerName('%sController');gc.setServiceName('%sService');gc.setServiceImplName('%sServiceImpl');gc.setMapperName('%sMapper');gc.setXmlName('%sMapper');mpg.setGlobalConfig(gc);// 數據源配置DataSourceConfig dsc = new DataSourceConfig();//指定數據庫類型,DbType中有對應的枚舉類型,pom文件中要添加對應的數據庫引用dsc.setDbType(DbType.MYSQL);//MySQL數據庫//dsc.setDbType(DbType.POSTGRE_SQL);//PostGre數據庫dsc.setTypeConvert(new MySqlTypeConvert() { // 自定義數據庫表字段類型轉換【可選】 @Override public IColumnType processTypeConvert(GlobalConfig gc, String fieldType) {System.out.println('轉換類型:' + fieldType);// 注意!!processTypeConvert 存在默認類型轉換,如果不是你要的效果請自定義返回、非如下直接返回。//默認會把日期類型 轉為LocalDateTime ,在查詢的時候會報錯,這里改為DateString t = fieldType.toLowerCase();if (t.contains('date') || t.contains('time') || t.contains('year')) { return DbColumnType.DATE;} else { return super.processTypeConvert(gc, fieldType);} }});//數據庫連接配置dsc.setDriverName('com.mysql.jdbc.Driver');// dsc.setDriverName('com.mysql.cj.jdbc.Driver'); //mysql8.0使用dsc.setUsername('root');dsc.setPassword('123456');dsc.setUrl('jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8');//PostGre數據庫連接/*dsc.setDriverName('org.postgresql.Driver');dsc.setUsername('postgres');dsc.setPassword('123456');dsc.setUrl('jdbc:postgresql://127.0.0.1:5432/sjz_db?characterEncoding=utf8');*/mpg.setDataSource(dsc);// 策略配置StrategyConfig strategy = new StrategyConfig();//strategy.setCapitalMode(true);// 全局大寫命名 ORACLE 注意//strategy.setTablePrefix('tb_');// 此處可以修改為您的表前綴strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略strategy.setColumnNaming(NamingStrategy.underline_to_camel);//采用駝峰映射strategy.setEntityLombokModel(true);//【實體】是否為lombok模型(默認 false)strategy.setInclude(new String[]{'node','zy'}); // 需要生成的表.如果需要生成所有的, 注釋掉此行就可以// strategy.setExclude(new String[]{'test'}); // 排除生成的表// 自定義實體父類// strategy.setSuperEntityClass('com.baomidou.demo.TestEntity');// 自定義實體,公共字段// strategy.setSuperEntityColumns(new String[] { 'test_id', 'age' });// 自定義 mapper 父類// strategy.setSuperMapperClass('com.baomidou.demo.TestMapper');// 自定義 service 父類// strategy.setSuperServiceClass('com.baomidou.demo.TestService');// 自定義 service 實現類父類// strategy.setSuperServiceImplClass('com.baomidou.demo.TestServiceImpl');// 自定義 controller 父類// strategy.setSuperControllerClass('com.baomidou.demo.TestController');// 【實體】是否生成字段常量(默認 false)// public static final String ID = 'test_id';// strategy.setEntityColumnConstant(true);// 【實體】是否為構建者模型(默認 false)// public User setName(String name) {this.name = name; return this;}// strategy.setEntityBuilderModel(true);mpg.setStrategy(strategy);// 包配置PackageConfig pc = new PackageConfig();pc.setParent('com.johan.generator.manage.modules');// 自定義包路徑pc.setController('controller');// 這里是控制器包名,默認 webpc.setMapper('mapper');// 設置Mapper包名,默認mapperpc.setService('service');// 設置Service包名,默認servicepc.setEntity('model.entity');// 設置Entity包名,默認entity,繼承的父類 已序列化pc.setXml('mapper.xml');// 設置Mapper XML包名,默認mapper.xmlmpg.setPackageInfo(pc);// 注入自定義配置,可以在 VM 中使用 cfg.abc 設置的值InjectionConfig cfg = 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); }};// 調整 xml 生成目錄演示List<FileOutConfig> focList = new ArrayList<>();focList.add(new FileOutConfig('/templates/mapper.xml.vm') { @Override public String outputFile(TableInfo tableInfo) {return filePath + 'resourcesmapperxml' + tableInfo.getEntityName() + 'Mapper.xml'; }});cfg.setFileOutConfigList(focList);mpg.setCfg(cfg);// 注入自定義配置,可以在 VM 中使用 cfg.abc 【可無】//InjectionConfig cfg = 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);// }//};////// 自定義 xxList.jsp 生成//List<FileOutConfig> focList = new ArrayList<>();//focList.add(new FileOutConfig('/template/list.jsp.vm') {// @Override// public String outputFile(TableInfo tableInfo) {//// 自定義輸入文件名稱//return 'D://my_' + tableInfo.getEntityName() + '.jsp';// }//});//cfg.setFileOutConfigList(focList);//mpg.setCfg(cfg);////// 調整 xml 生成目錄演示//focList.add(new FileOutConfig('/templates/mapper.xml.vm') {// @Override// public String outputFile(TableInfo tableInfo) {//return '/develop/code/xml/' + tableInfo.getEntityName() + '.xml';// }//});//cfg.setFileOutConfigList(focList);//mpg.setCfg(cfg);////// 關閉默認 xml 生成,調整生成 至 根目錄//TemplateConfig tc = new TemplateConfig();//tc.setXml(null);//mpg.setTemplate(tc);// 自定義模板配置,可以 copy 源碼 mybatis-plus/src/main/resources/templates 下面內容修改,// 放置自己項目的 src/main/resources/templates 目錄下, 默認名稱一下可以不配置,也可以自定義模板名稱// TemplateConfig tc = new TemplateConfig();// tc.setController('...');// tc.setEntity('...');// tc.setMapper('...');// tc.setXml('...');// tc.setService('...');// tc.setServiceImpl('...');// 如上任何一個模塊如果設置 空 OR Null 將不生成該模塊。// mpg.setTemplate(tc);// 執行生成mpg.execute(); }}五、測試

直接啟動系統運行,運行結束后發現相關代碼已經生成,如圖:

Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL)

到此這篇關于Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL)的文章就介紹到這了,更多相關Spring Boot MybatisPlus逆向工程 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: heyzo北条麻妃在线播放 | 精品欧美一区二区在线观看欧美熟 | 特级淫片国产免费高清视频 | 黄色片一级免费 | 国产在线视频精品视频免费看 | 日本一级片在线播放 | 国产女同磨豆腐视频在线观看 | 欧美日韩视频一区二区 | 中国一级一级全黄 | 最全精品自拍视频在线 | 青青草99热久久 | 成人 在线欧美亚洲 | 高潮岳喷我一脸 | 91精品手机国产在线观 | 中文字幕亚洲国产 | 在线观看国产精美视频 | 国产成人禁片免费观看视频 | 黄色美女在线观看 | 免费变态视频网站 | 亚洲精品无线乱码一区 | 久久er热这里只有精品23 | 久久免费在线视频 | 国产精品久久久久久久人人看 | www.欧美在线观看 | 国产做受视频激情播放 | 亚洲在线第一页 | 欧美国产激情二区三区 | xxx国产| 深夜你懂的在线网址入口 | 国产91网站在线观看 | 一级香蕉视频在线观看 | 国产日产欧美一区二区三区 | 一 级 黄 色蝶 片 | 综合亚洲欧美日韩一区二区 | 日本免费久久久久久久网站 | 日批视频网址免费观看 | 欧美日韩无线在码不卡一区二区三区 | 亚洲协和影视 | 久久久久久久久久久9精品视频 | 久久久精品久久久久三级 | 日本aaaaa高清免费看 |