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

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

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

瀏覽:7日期: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
相關文章:
主站蜘蛛池模板: 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | IP检测-检测您的IP质量| 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 广西教师资格网-广西教师资格证考试网 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 安徽华耐泵阀有限公司-官方网站 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 技德应用| 软启动器-上海能曼电气有限公司 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 培训无忧网-教育培训咨询招生第三方平台 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 首页_中夏易经起名网|