使用后端代碼生成器,提高開(kāi)發(fā)效率
如果你是一名后端開(kāi)發(fā)者,那么大多數(shù)的工作一定是重復(fù)編寫(xiě)各種 CRUD(增刪改查)代碼。時(shí)間長(zhǎng)了你會(huì)發(fā)現(xiàn),這些工作不僅無(wú)趣,還會(huì)浪費(fèi)你的很多時(shí)間,沒(méi)有機(jī)會(huì)去做更有創(chuàng)造力和挑戰(zhàn)的工作。
作為一名程序員,一定要學(xué)會(huì)偷懶!學(xué)會(huì)利用工具來(lái)解放人力。
其實(shí)現(xiàn)在有很多現(xiàn)成的代碼生成器,可以幫助我們自動(dòng)生成常用的增刪改查代碼,而不用自己重復(fù)編寫(xiě),從而大幅提高開(kāi)發(fā)效率,所以大家一定要掌握。
對(duì)應(yīng)到 Java 后端開(kāi)發(fā),主流技術(shù)是 Spring Boot + Spring MVC + MyBatis 框架,使用這些技術(shù)來(lái)開(kāi)發(fā)項(xiàng)目時(shí),通常需要編寫(xiě)數(shù)據(jù)訪問(wèn)層 (DAO / Mapper) 和數(shù)據(jù)庫(kù)表的 XML 映射代碼、實(shí)體類(lèi)、Service 業(yè)務(wù)邏輯代碼、以及 Controller 接口代碼。
本文就以使用 IDEA 開(kāi)發(fā)工具中我認(rèn)為非常好用的免費(fèi)代碼生成插件 MyBatisX
為例,帶大家學(xué)習(xí)如何使用工具自動(dòng)生成后端代碼,節(jié)省時(shí)間和精力。
MyBatisX 自動(dòng)生成代碼教程
1、安裝 MyBatisX 插件
首先,確保你已經(jīng)安裝了 IntelliJ IDEA 開(kāi)發(fā)工具。
打開(kāi)你的項(xiàng)目工程,然后進(jìn)入 Settings 設(shè)置頁(yè)搜索 MyBatisX 插件并安裝,步驟如圖:

2、配置數(shù)據(jù)庫(kù)連接
MyBatisX 插件的核心功能是根據(jù)數(shù)據(jù)庫(kù)表的結(jié)構(gòu)來(lái)生成對(duì)應(yīng)的實(shí)體類(lèi)、數(shù)據(jù)訪問(wèn)層 Mapper、Service 等代碼,所以在使用前,我們需要在 IDEA 中配置一個(gè)數(shù)據(jù)庫(kù)連接。
先在 IDEA 右側(cè)的 Database 中創(chuàng)建一個(gè) MySQL 數(shù)據(jù)源配置:

然后根據(jù)自己的數(shù)據(jù)庫(kù)信息填寫(xiě)配置,并測(cè)試能否連接成功:

連接成功后,就可以在 IDEA 中管理數(shù)據(jù)庫(kù)了,不需要 Navicat 之類(lèi)的第三方工具:

3、使用 MyBatisX 生成代碼
右鍵要生成代碼的數(shù)據(jù)表,進(jìn)入 MyBatisX 生成器:

然后進(jìn)入生成配置頁(yè)面,可以根據(jù)你的需求來(lái)自定義代碼生成規(guī)則:

上述配置中,我個(gè)人建議 base package
(生成代碼的包名和位置)盡量不要和已有的項(xiàng)目包名重疊,先把代碼生成到一個(gè)完全不影響業(yè)務(wù)的位置,確認(rèn)生成的代碼沒(méi)問(wèn)題后,再移動(dòng)代碼會(huì)更保險(xiǎn)一些。
進(jìn)入下一步,填寫(xiě)更多的配置,可以選擇生成代碼的模板(一般是 MyBatis-Plus 模板),以及自定義實(shí)體類(lèi)的生成規(guī)則(一般建議用 Lombok)。
以下是我常用的推薦配置:

改完配置后,直接點(diǎn)擊生成即可,然后可以在包目錄中看到生成的代碼:

4、定制修改
通過(guò)以上方法,就已經(jīng)能夠完成基礎(chǔ)增刪改查代碼的生成了,但一般情況下,我們得到生成的代碼后,還要再根據(jù)自己的需求進(jìn)行微調(diào)。
比如把主鍵 ID 的生成規(guī)則從自動(dòng)遞增改為雪花算法生成,防止數(shù)據(jù) id 連續(xù)被別人輕松爬走:

最后你就可以使用現(xiàn)成的代碼來(lái)操作數(shù)據(jù)庫(kù)啦~
其他
如開(kāi)頭所說(shuō),現(xiàn)在的代碼生成器非常多,比如 MyBatis Plus 框架也提供了靈活的代碼生成器:
指路:https://baomidou.com/pages/981406/

再比如可以直接在瀏覽器使用的代碼生成器,魚(yú)皮自己也開(kāi)發(fā)過(guò)并且開(kāi)源了:
指路:http://sqlfather.yupi.icu/
開(kāi)源:https://github.com/liyupi/sql-father-backend-public

感興趣的話,大家也可以嘗試使用 FreeMarker 技術(shù)做一個(gè)屬于自己的代碼生成器。
實(shí)踐
編程導(dǎo)航星球的用戶中心項(xiàng)目使用了 MyBatisX 插件來(lái)生成代碼,非常簡(jiǎn)單,大家一定要學(xué)會(huì)運(yùn)用!
???? 編程導(dǎo)航原創(chuàng)項(xiàng)目教程系列:https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd