1. 程式人生 > >如何使用mybatis generator程式碼生成?

如何使用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)結束語:

今天的分享就到這裡啦,歡迎大家點贊、轉發、留言、拍磚~

 

 

PPT連結 視訊連結

 

更多內容,可以加入IT交流群565734203與大家一起討論交流

 

這裡是技能樹·IT修真院:http://www.jsnhu.com,初學者轉行到網際網路的聚集地