如何使用mybatis generator程式碼生成?
這裡是修真院後端小課堂,每篇分享文從
【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】
八個方面深度解析後端知識/技能,本篇分享的是:
【如何使用mybatis generator程式碼生成?】
【修真院java小課堂】
MYBATIS GENERATOR
(1)背景介紹:
MyBatis Generator
MyBatis Generator (MBG) 是一個Mybatis的程式碼生成器
他可以內省資料庫的表(或多個表)然後生成可以用來訪問(多個)表的基礎物件。
這樣和資料庫表進行互動時不需要建立物件和配置檔案。
MBG的解決了對資料庫操作有最大影響的一些簡單的CRUD(插入,查詢,更新,刪除)操作。
您仍然需要對聯合查詢和儲存過程手寫SQL和物件
(2)知識剖析:
實現MBG的方式
1.使用命令列生成(瞭解)
2.使用maven外掛進行生成(常用)
兩種方式使用的generator.xml檔案內的配置都是一樣的,第一種需要用命令列載入jar包,第二種則需要用編輯器配置pom.xml
使用mybatis generator進行程式碼生成的操作步驟
第一步:準備資料庫、表
第二步:3個依賴和1個外掛
mybatis.jar
mybatis-generator-core.jar
mysql-connector-java.jar
mybatis-generator-maven-plugin
第三步:編寫配置檔案generatorConfig.xml
a.配置資料庫連線地址及賬號密碼
b.生成的Model類存放位置
c.生成的對映檔案存放位置
d.指定要生成的表(命名規範)
程式碼生成的對映檔案提供了幾種常用的CRUD操作
1.insert()
2.insertSelective()
3.updateByPrimaryKeySelective()
4.updateByPrimaryKey()
5.selectByPrimaryKey()
6.deleteByPrimaryKey()
mybatis-generator的執行過程
連線資料庫——》從資料庫的表中獲取欄位——》依據欄位生成mapper檔案、dao、實體類
生成的方式
1.使用命令列生成
2.使用maven外掛進行生成
(3)常見問題:
資料庫命名規範和JAVA命名規範不一樣的怎麼辦?
只能逆向生成mapper.xml檔案嗎,可否生成annotation的mapper呢
(4)解決方案:
1.如不加設定,mybatis-generator會把資料庫中的下劃線規則自動轉化為JAVA中的駝峰規則並生成實體類
2.可以通過generatorConfig.xml設定
將javaclientgenerator引數中的TYPE值由XMLMAPPER改為ANNOTATEDMAPPER即可
(5)編碼實戰:
(6)拓展思考:
(7)參考文獻:
http://mbg.cndocs.ml/quickstart.html
https://gitee.com/free/Mybatis_Utils/blob/master/MybatisGeneator
(8)更多討論:
1.什麼是Example,什麼是Criteria?
答:Example類被用來生成任何where子句。它包含一個內部靜態類Criteria。這個Criteriz維護一個條件列表,這些條件會被 anded到where子句。
2.createCriteria()方法和or()方法的區別?
答:兩個方法都可以用來建立Criteria物件。區別在於首個被crateCriteria方法建立的Criterier物件將自動新增到list of criteria。如果是被or()方法建立,則是新增到the list in all instance。
3.動態sql用起來有什麼問題嗎?
答:這裡只做了一個簡單的例子。因為方法名的原因,用起來比較吃力,但是如果以後公司沒有程式碼生成的話,可以學習下。
(9)鳴謝:
感謝XX、XX師兄,此教程是在他們之前技術分享的基礎上完善而成。
(10)結束語:
今天的分享就到這裡啦,歡迎大家點贊、轉發、留言、拍磚~
更多內容,可以加入IT交流群565734203與大家一起討論交流
這裡是技能樹·IT修真院:http://www.jsnhu.com,初學者轉行到網際網路的聚集地