电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:6日期: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
相關文章:
主站蜘蛛池模板: 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 计算机毕业设计源码网| 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 学考网学历中心| 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 24位ADC|8位MCU-芯易德科技有限公司| 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 |