精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MyBatisPlus快速開發之代碼生成器解析

開發 開發工具
做任何模塊的開發,對于這段代碼,基本上都是對紅色部分的調整,所以我們把去掉紅色內容的東西稱之為模板,紅色部分稱之為參數,以后只需要傳入不同的參數,就可以根據模板創建出不同模塊的dao代碼。

1、代碼生成器原理分析

造句:

我們可以往空白內容進行填詞造句,比如:

在比如:

觀察我們之前寫的代碼,會發現其中也會有很多重復內容,比如:

那我們就想,如果我想做一個Book模塊的開發,是不是只需要將紅色部分的內容全部更換成Book即可,如:

所以我們會發現,做任何模塊的開發,對于這段代碼,基本上都是對紅色部分的調整,所以我們把去掉紅色內容的東西稱之為模板,紅色部分稱之為參數,以后只需要傳入不同的參數,就可以根據模板創建出不同模塊的dao代碼。

除了Dao可以抽取模塊,其實我們常見的類都可以進行抽取,只要他們有公共部分即可。再來看下模型類的模板:

  • ① 可以根據數據庫表的表名來填充
  • ② 可以根據用戶的配置來生成ID生成策略
  • ③到⑨可以根據數據庫表字段名稱來填充

所以只要我們知道是對哪張表進行代碼生成,這些內容我們都可以進行填充。

分析完后,我們會發現,要想完成代碼自動生成,我們需要有以下內容:

  • 模板: MyBatisPlus已經提供了模板,也可以自己提供模板,但是麻煩,不建議
  • 數據庫相關配置:讀取數據庫獲取表和字段信息
  • 開發者自定義配置:手工配置,比如ID生成策略

2、代碼生成器實現

步驟1:創建一個Maven項目

步驟2:導入對應的jar包

<?xml versinotallow="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 https://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.5.1</version>
</parent>
<groupId>com.itheima</groupId>
<artifactId>mybatisplus_04_generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--spring webmvc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--mybatisplus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>

<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>

<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

<!--test-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>

<!--代碼生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>

<!--velocity模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>

</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

步驟3:編寫引導類

@SpringBootApplication
public class Mybatisplus04GeneratorApplication {

public static void main(String[] args){
SpringApplication.run(Mybatisplus04GeneratorApplication.class, args);
}

}

步驟4:創建代碼生成類

public class CodeGenerator {
public static void main(String[] args){
//1.獲取代碼生成器的對象
AutoGenerator autoGenerator = new AutoGenerator();

//設置數據庫相關配置
DataSourceConfig dataSource = new DataSourceConfig();
dataSource.setDriverName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC");
dataSource.setUsername("root");
dataSource.setPassword("root");
autoGenerator.setDataSource(dataSource);

//設置全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir")+"/mybatisplus_04_generator/src/main/java"); //設置代碼生成位置
globalConfig.setOpen(false); //設置生成完畢后是否打開生成代碼所在的目錄
globalConfig.setAuthor("黑馬程序員"); //設置作者
globalConfig.setFileOverride(true); //設置是否覆蓋原始生成的文件
globalConfig.setMapperName("%sDao"); //設置數據層接口名,%s為占位符,指代模塊名稱
globalConfig.setIdType(IdType.ASSIGN_ID); //設置Id生成策略
autoGenerator.setGlobalConfig(globalConfig);

//設置包名相關配置
PackageConfig packageInfo = new PackageConfig();
packageInfo.setParent("com.aaa"); //設置生成的包名,與代碼所在位置不沖突,二者疊加組成完整路徑
packageInfo.setEntity("domain"); //設置實體類包名
packageInfo.setMapper("dao"); //設置數據層包名
autoGenerator.setPackageInfo(packageInfo);

//策略設置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("tbl_user"); //設置當前參與生成的表名,參數為可變參數
strategyConfig.setTablePrefix("tbl_"); //設置數據庫表的前綴名稱,模塊名 = 數據庫表名 - 前綴名 例如: User = tbl_user - tbl_
strategyConfig.setRestControllerStyle(true); //設置是否啟用Rest風格
strategyConfig.setVersionFieldName("version"); //設置樂觀鎖字段名
strategyConfig.setLogicDeleteFieldName("deleted"); //設置邏輯刪除字段名
strategyConfig.setEntityLombokModel(true); //設置是否啟用lombok
autoGenerator.setStrategy(strategyConfig);
//2.執行生成操作
autoGenerator.execute();
}
}

對于代碼生成器中的代碼內容,我們可以直接從官方文檔中獲取代碼進行修改,https://baomidou.com/pages/d357af/#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B

步驟5:運行程序

運行成功后,會在當前項目中生成很多代碼,代碼包含controller,service,mapper和entity

至此代碼生成器就已經完成工作,我們能快速根據數據庫表來創建對應的類,簡化我們的代碼開發。

3、Mybatisplus中Service的CRUD

回顧我們之前業務層代碼的編寫,編寫接口和對應的實現類:

public interface UserService{

}

@Service
public class UserServiceImpl implements UserService{

}

接口和實現類有了以后,需要在接口和實現類中聲明方法

public interface UserService{
public List<User> findAll();
}

@Service
public class UserServiceImpl implements UserService{
@Autowired
private UserDao userDao;

public List<User> findAll(){
return userDao.selectList(null);
}
}

Mybatisplus看到上面的代碼以后就說這些方法也是比較固定和通用的,那來幫你抽取下,所以Mybatisplus提供了一個Service接口和實現類,分別是:IService和ServiceImpl,后者是對前者的一個具體實現。

以后我們自己寫的Service就可以進行如下修改:

public interface UserService extends IService<User>{

}

@Service
public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService{

}

修改以后的好處是,Mybatisplus已經幫我們把業務層的一些基礎的增刪改查都已經實現了,可以直接進行使用。

編寫測試類進行測試:

@SpringBootTest
class Mybatisplus04GeneratorApplicationTests {

private IUserService userService;

@Test
void testFindAll(){
List<User> list = userService.list();
System.out.println(list);
}

}

思考:在Mybatisplus封裝的Service層都有哪些方法可以用?

https://baomidou.com/pages/49cc81/


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2014-02-18 09:56:48

快速開發代碼生成器

2021-12-10 09:45:19

生成器配置代碼

2009-08-07 14:05:21

ASP.NET控件

2021-07-23 11:24:54

Create Inc開源G代碼生成器

2015-08-25 15:54:17

程序員代碼生成器

2023-05-17 16:02:00

CSS工具代碼生成器

2015-04-22 09:36:27

JAVA代碼生成器

2024-11-01 15:51:06

2023-08-25 09:51:21

前端開發

2021-10-29 11:25:41

代碼編程語言Java

2020-10-20 09:53:11

代碼IDEA生成器

2012-03-30 09:31:44

WEBCSS

2015-08-25 11:07:58

2025-01-23 08:36:27

CSS開發工具

2017-07-01 16:02:39

分布式ID生成器

2017-03-20 17:49:21

Java Web模板代碼

2011-08-16 10:17:12

XCode模版引擎XTemplate

2011-12-23 13:42:05

JavaScript

2010-09-07 16:31:17

SQL語句insert

2021-04-22 21:15:38

Generator函數生成器
點贊
收藏

51CTO技術棧公眾號

777亚洲妇女| 久久er精品视频| 亚洲人高潮女人毛茸茸| 男人揉女人奶房视频60分| 亚洲色图另类小说| 韩国亚洲精品| 亚洲精选在线观看| 日本人69视频| 丝袜综合欧美| 26uuu国产电影一区二区| 国产精品久久久久久av| 久久国产精品国语对白| 欧美精品国产白浆久久久久| 日韩欧美中文第一页| 超碰免费在线公开| 欧美天堂在线视频| 麻豆视频一区二区| 久久久视频精品| 亚洲天堂岛国片| av成人app永久免费| 在线亚洲人成电影网站色www| 成年人免费观看的视频| 好吊视频一区二区三区| 日韩成人精品在线观看| 欧美日本精品在线| 人妻aⅴ无码一区二区三区| 91国产一区| 一本一道久久a久久精品综合蜜臀| 亚洲va久久久噜噜噜久久狠狠 | 亚洲一级二级三级| 日本一区二区三区视频免费看| 国产精品无码白浆高潮| 亚洲一区观看| 久久国产精品亚洲| 国产又粗又黄又猛| 久久久久久毛片免费看| 制服丝袜国产精品| 爱情岛论坛成人| 99thz桃花论族在线播放| 中文字幕二三区不卡| 国产原创精品| 99在线小视频| 美女任你摸久久 | 伊伊综合在线| 一二三区精品视频| 一区二区三区视频| 韩日视频在线| 久久综合九色综合97婷婷| 91中文字幕一区| 蜜桃视频在线观看一区| 亚洲精品在线观看网站| 久热免费在线观看| 成人超碰在线| 一区二区三区加勒比av| 亚洲在线视频一区二区| 免费福利在线观看| 成人aaaa免费全部观看| 3d动漫精品啪啪一区二区三区免费| 日韩精品手机在线| 亚洲国内欧美| 久久久久国产视频| 欧美黄片一区二区三区| 久久网站免费观看| 日韩中文字幕在线免费观看| 国产精久久一区二区三区| 啪啪国产精品| 亚洲第五色综合网| 麻豆精品国产传媒av| 国产区精品视频在线观看豆花| 日韩午夜在线观看视频| 超碰aⅴ人人做人人爽欧美| 影音先锋在线一区| 欧美高清视频在线观看| 国产在线综合视频| 日本午夜一区| 日韩在线视频观看正片免费网站| 国产精品一二三区在线观看| 国产日韩视频在线| 国产亚洲一区二区精品| 卡一卡二卡三在线观看| 青青草国产免费一区二区下载 | 欧美高清视频一区二区| 国产午夜小视频| 激情亚洲成人| 2023亚洲男人天堂| 国产一级片av| 乱一区二区av| 国产精品免费久久久久影院| 一级黄色片在线看| 国产毛片精品视频| 国产欧美日韩综合一区在线观看| 天天av综合网| 欧美经典一区二区| 亚洲小视频在线播放| 美洲精品一卡2卡三卡4卡四卡| 亚洲国产欧美在线人成| 少妇高潮喷水久久久久久久久久| 欧美日韩不卡| 91精品国产麻豆国产自产在线| 99热一区二区| eeuss鲁片一区二区三区| 日韩成人在线免费观看| 丰满的亚洲女人毛茸茸| 亚洲女同一区| 日本乱人伦a精品| 国产伦理吴梦梦伦理| 粉嫩一区二区三区性色av| 麻豆av一区二区三区| 一区二区高清不卡| 亚洲国产精品影院| 欧美特级aaa| jazzjazz国产精品麻豆| 亚洲最新视频在线| 久久久久久福利| 美女91精品| 亚洲自拍高清视频网站| 日韩一区二区三区中文字幕| 国产女人18水真多18精品一级做| 国产在线拍揄自揄拍无码| 三妻四妾的电影电视剧在线观看| 欧美人xxxx| 欧美bbbbb性bbbbb视频| 日韩精品一区二区久久| 午夜精品一区二区三区av| 91高潮大合集爽到抽搐| 99久久精品国产毛片| 在线看成人av电影| 视频二区不卡| 欧美一区午夜视频在线观看| 国内精品卡一卡二卡三| 欧美特黄视频| 国产在线999| 欧美日本韩国一区二区| 亚洲一区在线观看免费观看电影高清| 日本老熟妇毛茸茸| 青草久久视频| 久久久久久久av| 99久久久国产精品无码网爆| 久久久久久久国产精品影院| 中文字幕免费在线不卡| 人人视频精品| 精品视频在线播放| 久久久久免费看| 国产一区二区三区精品欧美日韩一区二区三区| 久久国产精品久久精品国产| 九色91在线| 欧美一二区视频| 免费一级suv好看的国产网站| 久久动漫亚洲| 麻豆av一区二区三区| 精品丝袜在线| 欧美变态tickle挠乳网站| 男女性高潮免费网站| 另类中文字幕网| 亚洲国产日韩欧美| 全球最大av网站久久| 亚洲欧美中文另类| 国产精品久久久久久久久久精爆| 成人免费高清在线| 91视频成人免费| 国产精品日本一区二区不卡视频 | 国产真实乱人偷精品人妻| 国产精品v亚洲精品v日韩精品| 国产女人精品视频| 免费观看在线黄色网| 欧美精选午夜久久久乱码6080| 国产伦精品一区二区三区视频女| 天堂va蜜桃一区二区三区漫画版| 欧美黄色直播| 日韩另类视频| 色偷偷av一区二区三区乱| 免费又黄又爽又猛大片午夜| 91免费观看在线| 女人另类性混交zo| 欧美亚洲高清| 成人免费午夜电影| 色呦呦视频在线观看| 精品久久久久99| 日韩高清精品免费观看| 99免费精品在线| 嫩草影院中文字幕| 久久99国产精品久久99大师| 91精品国产色综合| 国产专区在线播放| 欧美色图免费看| 91香蕉视频在线播放| 国产精品99久久久久久宅男| 91网站在线观看免费| 136导航精品福利| 91精品国产91久久| 国产特黄在线| 欧美日本国产视频| 欧美日韩综合一区二区| 成人高清视频免费观看| 国产a级一级片| 欧美国产小视频| 亚洲在线视频福利| 日韩脚交footjobhd| 亚洲欧美www| 国产精品伦理一区| 亚洲va在线va天堂| 东京热无码av男人的天堂| 国产一区欧美日韩| 5月婷婷6月丁香| 日韩av专区| 波多野结衣精品久久| 亚洲淫成人影院| 久久九九全国免费精品观看| 亚洲乱码精品久久久久..| 色婷婷av一区二区三区软件| 日韩福利在线视频| 成人激情午夜影院| 丰满少妇在线观看| 亚洲激情网址| 日本一区二区三区四区高清视频 | 91九色对白| 日本蜜桃在线观看视频| 中文字幕综合一区| 天天舔天天干天天操| 欧美日韩免费高清一区色橹橹| 国产精品1234区| 国产精品网友自拍| 国产吞精囗交久久久| 韩国v欧美v亚洲v日本v| 日韩视频在线免费看| 国产精品多人| 日韩国产精品一区二区三区| 一区二区三区免费在线看| 国产精品pans私拍| www.九色在线| 欧美巨大黑人极品精男| 超碰免费在线观看| 日韩精品有码在线观看| 中文字幕av无码一区二区三区| 亚洲欧美另类小说| 永久免费毛片在线观看| 成人午夜av电影| 午夜免费视频网站| 蜜臀精品久久久久久蜜臀| 中文字幕无码精品亚洲35| 欧美一区二区三区久久精品| 亚洲福利av在线| 精品一区免费| 美女主播视频一区| 精品精品国产三级a∨在线| 91久久爱成人| 精品中文字幕一区二区三区四区 | 亚洲成人av免费观看| 久久精品国产精品亚洲精品 | 日韩精品人妻中文字幕有码 | 亚洲国产精品狼友在线观看| 欧美先锋资源| 日韩精品一区二区三区外面| 成人黄色av| 免费久久久久久| 欧美日本亚洲韩国国产| 青青草国产免费| 亚洲影音先锋| 亚洲欧美视频二区| 国产精品 欧美精品| 亚洲婷婷在线观看| 久久影音资源网| 97在线观看免费视频| 中文字幕亚洲欧美在线不卡| 一区视频免费观看 | jizz国产在线| 欧美区在线观看| 亚洲精品久久久蜜桃动漫| 亚洲国产成人精品电影| 日本天堂影院在线视频| 一区二区三区四区视频| 成人区精品一区二区不卡| 久久久久久久网站| 电影久久久久久| 亚洲一区二区三区四区在线播放 | 亚洲精品成人a8198a| 综合久久婷婷| 无码人妻丰满熟妇区96| 丝袜a∨在线一区二区三区不卡| 91看片破解版| 99精品国产91久久久久久| 69xxx免费| 亚洲国产视频在线| 神马久久久久久久| 91麻豆精品国产自产在线观看一区 | 亚洲v欧美v另类v综合v日韩v| 欧美1区2区视频| 精品www久久久久奶水| 国产一区二区视频在线| 久久人人爽人人爽人人片| 综合电影一区二区三区 | 欧美一区二区免费视频| 污污视频在线观看网站| 日韩中文字幕精品| 九色porny视频在线观看| 成人免费视频网址| 妖精视频一区二区三区| 欧美 国产 精品| 精品国产成人亚洲午夜福利| 久久看人人爽人人| 久久久久性色av无码一区二区| 91国内精品野花午夜精品| 亚洲毛片在线播放| 神马久久桃色视频| 密臀av在线播放| 99高清视频有精品视频| 欧美在线电影| 国产精品333| 粉嫩绯色av一区二区在线观看| 蜜桃av免费在线观看| 欧美视频不卡中文| 欧美 日韩 国产 在线| 久久久精品国产亚洲| 国产69精品久久| 免费国产一区二区| 亚洲精品欧美| 特黄特色免费视频| 亚洲少妇中出一区| 啪一啪鲁一鲁2019在线视频| 91麻豆精品| 亚洲欧洲国产日韩精品| 美女91精品| 加勒比一区二区| 精品国产乱码久久久久久天美| 午夜精品久久久久久久爽| 色香阁99久久精品久久久| 日韩另类视频| 日韩欧美精品在线不卡| 老鸭窝91久久精品色噜噜导演| 丰满大乳奶做爰ⅹxx视频| 一卡二卡三卡日韩欧美| 国产高清视频免费观看| 久久久999精品免费| 日本在线一区二区| 一区二区三区免费看| 久久国产精品露脸对白| 国产无遮挡在线观看| 欧美亚洲动漫制服丝袜| 国产视频在线看| 国产精品91久久久久久| 国产欧美日韩视频在线| 麻豆传传媒久久久爱| 国产日产欧产精品推荐色| 91丝袜一区二区三区| 亚洲欧美国产精品久久久久久久| 亚洲欧洲美洲av| 日韩精品第一页| 另类的小说在线视频另类成人小视频在线 | 国产**成人网毛片九色| a级片在线观看免费| 欧美成人bangbros| av在线私库| 久久亚洲午夜电影| 日本欧美大码aⅴ在线播放| 黄色裸体一级片| 日韩欧美亚洲一区二区| 国产天堂在线播放视频| 老司机精品福利在线观看| 老司机免费视频久久| 蜜桃av免费在线观看| 日韩欧美一级在线播放| 91美女精品| 亚洲成人午夜在线| 国产一区二区三区美女| 日本一级黄色大片| 国产亚洲精品美女| 国产精品白丝久久av网站| 国产精品久久国产| 久久久久久久综合日本| 91在线观看喷潮| 久久久久久久久久久久久久久久久久av | 日本欧美色综合网站免费| 美女一区二区视频| 久久99久久98精品免观看软件| 日韩av网站大全| jizzjizz少妇亚洲水多| 日本免费黄色小视频| 成人av午夜电影| 中文在线资源天堂| 欧美激情中文字幕在线| 亚洲国产合集| 国内av免费观看| 欧美日韩中文字幕| 黄网页在线观看| 好看的日韩精品| 久久成人免费网站| 日韩乱码人妻无码中文字幕| 有码中文亚洲精品| 波多野结衣在线一区二区| 久久黄色免费看| 亚洲永久免费av| 91在线品视觉盛宴免费| 国产精品嫩草在线观看| 免费欧美在线视频| 日韩成人免费在线观看| 久久躁狠狠躁夜夜爽| 自拍自偷一区二区三区| 麻豆av免费看| 欧美日韩免费一区二区三区 | 欧美黄色一级视频|