成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

SpringBoot下使用MyBatis-Puls代碼生成器的方法

瀏覽:29日期:2023-04-16 14:41:13

1.官方地址:

http://mybatis.plus/guide/generator.html#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B

2.數據庫結構:

SpringBoot下使用MyBatis-Puls代碼生成器的方法

3.依賴導入

<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> <version>5.1.39</version> </dependency><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>

配置freemarker是因為myBatis中默認的引擎是freemarker,支持自定義引擎

3.目錄結構

SpringBoot下使用MyBatis-Puls代碼生成器的方法

4.官方生成器類

CodeGenerator

public class CodeGenerator { /** * <p> * 讀取控制臺內容 * </p> */ public static String scanner(String tip) { Scanner scanner = new Scanner(System.in); StringBuilder help = new StringBuilder(); help.append('請輸入' + tip + ':'); System.out.println(help.toString()); if (scanner.hasNext()) { String ipt = scanner.next(); if (StringUtils.isNotBlank(ipt)) {return ipt; } } throw new MybatisPlusException('請輸入正確的' + tip + '!'); } public static void main(String[] args) { // 代碼生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty('user.dir'); /** * 這里需要設定一下保存的地址是本項目下的/src/main/java */ gc.setOutputDir(projectPath + '/maven1018/src/main/java'); gc.setAuthor('XYD'); gc.setOpen(false); // gc.setSwagger2(true); 實體屬性 Swagger2 注解 mpg.setGlobalConfig(gc); // 數據源配置 /** * 設置數據庫名稱和數據庫賬戶密碼 */ DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl('jdbc:mysql://localhost:3306/temporary?useUnicode=true&useSSL=false&characterEncoding=utf8'); // dsc.setSchemaName('public'); dsc.setDriverName('com.mysql.jdbc.Driver'); dsc.setUsername('root'); dsc.setPassword('12345'); mpg.setDataSource(dsc); // 包配置 /** * 設置生成文件保存地址,模塊名為命令窗口輸入的模塊名 */ PackageConfig pc = new PackageConfig(); pc.setModuleName(scanner('模塊名')); pc.setParent('com.baomidou.ant'); mpg.setPackageInfo(pc); // 自定義配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() {// to do nothing } }; // 如果模板引擎是 freemarker// String templatePath = '/templates/mapper.xml.ftl'; // 如果模板引擎是 velocity // String templatePath = '/templates/mapper.xml.vm'; /** * 這里定義的是生成xml文檔的輸出配置,存放在resource下 */ // 自定義輸出配置// List<FileOutConfig> focList = new ArrayList<>(); // 自定義配置會被優先輸出// focList.add(new FileOutConfig(templatePath) {// @Override// public String outputFile(TableInfo tableInfo) {//// 自定義輸出文件名 , 如果你 Entity 設置了前后綴、此處注意 xml 的名稱會跟著發生變化!!//return projectPath + '/maven1018/src/main/resources/mapper/' + pc.getModuleName()// + '/' + tableInfo.getEntityName() + 'Mapper' + StringPool.DOT_XML;// }// }); /* cfg.setFileCreate(new IFileCreate() { @Override public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {// 判斷自定義文件夾是否需要創建checkDir('調用默認方法創建的目錄,自定義目錄用');if (fileType == FileType.MAPPER) { // 已經生成 mapper 文件判斷存在,不想重新生成返回 false return !new File(filePath).exists();}// 允許生成模板文件return true; } }); */// cfg.setFileOutConfigList(focList);// mpg.setCfg(cfg); // 配置模板 TemplateConfig templateConfig = new TemplateConfig(); // 配置自定義輸出模板 //指定自定義模板路徑,注意不要帶上.ftl/.vm, 會根據使用的模板引擎自動識別 // templateConfig.setEntity('templates/entity2.java'); // templateConfig.setService(); // templateConfig.setController(); templateConfig.setXml(null); mpg.setTemplate(templateConfig); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel);// strategy.setSuperEntityClass('你自己的父類實體,沒有就不用設置!'); strategy.setEntityLombokModel(true); strategy.setRestControllerStyle(true); // 公共父類// strategy.setSuperControllerClass('你自己的父類控制器,沒有就不用設置!'); // 寫于父類中的公共字段// strategy.setSuperEntityColumns('id'); //注釋這行否則生成的實體類中沒有Id變量 strategy.setInclude(scanner('表名,多個英文逗號分割').split(',')); strategy.setControllerMappingHyphenStyle(true); strategy.setTablePrefix(pc.getModuleName() + '_'); mpg.setStrategy(strategy); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); }}

5. 代碼生成后的配置

默認生成的代碼中實體類是沒有id屬性的,在代碼生成類中注釋掉strategy.setSuperEntityColumns('id'); 默認生成的mapper對象上是沒有@Mapper注解,需要在主配置類中加入@MapperScan注解,進行mapper掃描

@SpringBootApplication@MapperScan('com.example.crount.mapper')public class Demo1018Application { public static void main(String[] args) { SpringApplication.run(Demo1018Application.class, args); }}

另外自己要運行代碼進行數據庫訪問,所以application.properties中也要配置數據源

# 數據庫配置spring.datasource.url=jdbc:mysql:///temporary?characterEncoding=utf-8&useSSL=falsespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=12345#連接池配置#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

6.controller開發

注入service,修改訪問的地址,寫入訪問的方法

@RestControllerpublic class StudentController { @Autowired private IStudentService studentService; @GetMapping('/demo1') public String m1(){ Student student = studentService.getById(3); return student.getSSex(); }}

7.生成的代碼放到主配置類的同級目錄下,運行代碼

SpringBoot下使用MyBatis-Puls代碼生成器的方法

到此這篇關于SpringBoot下使用MyBatis-Puls代碼生成器的方法的文章就介紹到這了,更多相關MyBatis-Puls代碼生成器內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲精品一区二区在线观看| 久久精品国产第一区二区三区| 日韩欧美中文字幕公布| 色偷偷成人一区二区三区91 | youjizz国产精品| 国产成人一区二区精品非洲| 精品中文字幕一区二区小辣椒| 日韩电影免费在线| 色哟哟一区二区在线观看| 久久精品二区三区| 色综合久久久久网| 欧美私模裸体表演在线观看| 欧美视频精品在线观看| 欧美日韩成人一区| 欧美一级理论片| 久久先锋影音av| 国产欧美日产一区| 亚洲欧洲成人自拍| 亚洲成av人综合在线观看| 成人丝袜视频网| 国产一区视频在线看| av一区二区三区黑人| 欧美精品18| 香蕉成人久久| 欧美日韩高清一区二区三区| 91麻豆精品91久久久久同性| 国产亚洲一区字幕| 日韩美女视频一区| 日韩国产欧美在线视频| 黄色资源网久久资源365| av资源网一区| 夜夜爽99久久国产综合精品女不卡| 久久亚洲精品欧美| 日韩一区二区三| 国产精品久久国产精麻豆99网站| 亚洲综合视频在线观看| 国产一区不卡精品| 好吊色欧美一区二区三区四区| 久久久久高清| 久久综合九色综合欧美98| 一区二区三区四区蜜桃| 久久黄色级2电影| 99精品一区二区三区| 亚洲国产欧美不卡在线观看| 欧美视频精品在线观看| 国产精品丝袜在线| 玖玖九九国产精品| 亚洲五月婷婷| 欧美高清dvd| 亚洲欧美色图小说| 大白屁股一区二区视频| 一本色道久久综合一区| 日韩一区二区在线看片| 亚洲激情图片qvod| 成人av电影在线| 色婷婷国产精品综合在线观看| 欧美mv和日韩mv的网站| 亚洲成av人影院| 91欧美一区二区| 一本色道久久综合狠狠躁的推荐| 久久久不卡影院| 经典一区二区三区| 午夜影院日韩| 欧美激情综合五月色丁香小说| 免费观看一级特黄欧美大片| 合欧美一区二区三区| 欧美不卡激情三级在线观看| 秋霞电影网一区二区| 伊大人香蕉综合8在线视| 91精品国产91久久久久久最新毛片| 一区二区三区波多野结衣在线观看| 国产福利91精品一区| 久久久久久久久久久久久9999| 国产亚洲精品aa午夜观看| 韩国三级在线一区| 美女精品网站| 综合色天天鬼久久鬼色| 色综合久久综合| 欧美剧情片在线观看| 日本不卡一区二区三区 | 在线看一区二区| 亚洲综合成人在线视频| 亚洲网友自拍| 午夜精品亚洲一区二区三区嫩草| 欧美人动与zoxxxx乱| 日韩专区中文字幕一区二区| 亚洲欧洲一区| 中文字幕欧美日本乱码一线二线| 国产成人一区在线| 91精品国产高清一区二区三区蜜臀 | 日本韩国一区二区| 亚洲大片一区二区三区| 亚洲精品资源| 久久97超碰色| 99re66热这里只有精品4| 中文字幕不卡在线| 91农村精品一区二区在线| 精品免费日韩av| 国产99久久久国产精品潘金网站| 欧美日韩中文精品| 蜜桃视频在线观看一区| 色综合久久天天| 日韩精品一二三四| 久久综合网络一区二区| 婷婷夜色潮精品综合在线| 久久久久99| 日韩中文字幕亚洲一区二区va在线| 久久精品成人一区二区三区蜜臀| 亚洲国产成人va在线观看天堂| 99精品国产一区二区青青牛奶| 亚洲欧洲精品天堂一级| 国产一区成人| 肉丝袜脚交视频一区二区| 色又黄又爽网站www久久| 日韩中文字幕91| 欧美在线免费播放| 久久电影网站中文字幕| 在线播放视频一区| 丁香网亚洲国际| 日本一区二区三区电影| 亚洲精品乱码| 日韩电影在线一区二区三区| 欧美日韩国产综合视频在线观看| 国产高清在线精品| 国产日产精品一区| 日韩一级在线| 久久精品国产秦先生| 日韩一级免费一区| 欧美日韩在线高清| 亚洲成人在线观看视频| 欧美日韩久久久| 97se亚洲国产综合在线| 亚洲自拍偷拍综合| 欧美酷刑日本凌虐凌虐| 国产精品二区在线| 日本亚洲视频在线| 2021久久国产精品不只是精品| 欧美日韩一区在线视频| 五月激情丁香一区二区三区| 91精品国产一区二区人妖| 欧美日韩国产高清| 日韩av一区二| 国产亚洲一区二区三区| 国产伦精品一区二区三区照片91| 狠狠色丁香婷综合久久| 亚洲欧洲国产日韩| 欧美日韩一区二区三区四区五区| 91蝌蚪porny九色| 日日夜夜精品视频免费| 精品久久久久香蕉网| 国产欧美日韩| 国产成人免费av在线| 亚洲另类在线制服丝袜| 在线播放中文一区| 国产亚洲欧洲| 成人深夜视频在线观看| 亚洲精品国产精品乱码不99| 欧美军同video69gay| 在线观看的日韩av| 国产麻豆精品一区二区| 亚洲欧洲综合另类在线| 日韩精品一区二区三区视频播放 | 午夜欧美理论片| 麻豆国产精品一区二区三区| 国产精品看片你懂得| 在线不卡中文字幕播放| 99在线精品免费视频九九视| 99久久精品免费看| 蜜桃视频在线一区| 一区二区三区在线观看欧美| 久久精品亚洲精品国产欧美kt∨| 欧美在线色视频| 亚洲国产精品久久艾草纯爱| 国产精品欧美精品| 日韩一区二区免费视频| 色综合久久久网| 一区二区不卡在线视频 午夜欧美不卡'| 国产经典欧美精品| 老司机免费视频一区二区三区| 亚洲乱码国产乱码精品精可以看| 欧美成人三级在线| 欧美高清视频在线高清观看mv色露露十八| 国产欧美日韩亚洲| 亚洲午夜精品国产| 91在线云播放| 成人高清免费在线播放| 国产激情91久久精品导航 | 国产精品观看| 欧美国内亚洲| aaa国产一区| 高清国产一区二区| 国产乱人伦偷精品视频免下载 | av激情综合网| 粉嫩av一区二区三区| 狠狠色综合色综合网络| 日本v片在线高清不卡在线观看| 有码一区二区三区| 亚洲欧洲在线观看av| 欧美激情一区二区三区| 欧美激情在线一区二区|