大家好,我是IT修真院深圳分院第5期學(xué)員,一枚正直善良的JAVA程序員。
今天給大家分享一下,修真院官網(wǎng)JAVA任務(wù)1中,深度思考部分的知識點——Spring中的IOC是什么意思,為什么要用IOC而不是New來創(chuàng)建實例?
一、背景介紹
1、Mybatis是現(xiàn)在比較常用的持久層框架,使用起來比較方便,而且功能也相對強(qiáng)大,實現(xiàn)方法分別是基于注解和基于映射文件。但是當(dāng)需要操作的實體類較多時,逐個編寫基于注解或基于映射文件的CRUD耗時長且容易出錯,重復(fù)這種操作對個人的能力提升也沒有幫助,使用Mybatis Generator不僅可以保證基本CRUD的編寫準(zhǔn)確,還能節(jié)省大量的編碼時間,是一個值得推薦使用的生成代碼的方法
2、MyBatis Generator (MBG) 是一個Mybatis的代碼生成器,它可以幫助我們根據(jù)數(shù)據(jù)庫中表的設(shè)計生成對應(yīng)的xml Mapper文件,接口以及實體類(也就是我們可以借助該類來進(jìn)行簡單的CRUD操作),這樣就避免了我們每使用到一張表的數(shù)據(jù)就需要手動去創(chuàng)建對應(yīng)的類和xml文件,這就幫我們節(jié)約了大量的時間去開發(fā)和業(yè)務(wù)邏輯有關(guān)的功能,但是如果對聯(lián)合查詢和存儲過程我們?nèi)匀恍枰謱慡QL和對象。下面我主要介紹MBG的相關(guān)知識點以及操作方法。
二、知識剖析
實現(xiàn)MBG的方式
1.使用命令行生成(了解)
2.使用maven插件進(jìn)行生成(常用)
兩種方式使用的generator.xml文件內(nèi)的配置都是一樣的,第一種需要用命令行加載jar包,第二種則需要用編輯器配置pom.xml
使用mybatis generator進(jìn)行代碼生成的操作步驟
第一步:準(zhǔn)備數(shù)據(jù)庫、表
第二步:3個依賴和1個插件
mybatis.jar
mybatis-generator-core.jar
mysql-connector-java.jar
mybatis-generator-maven-plugin
第三步:編寫配置文件generatorConfig.xml
a.配置數(shù)據(jù)庫連接地址及賬號密碼
b.生成的Model類存放位置
c.生成的映射文件存放位置
d.指定要生成的表(命名規(guī)范)
代碼生成的映射文件提供了幾種常用的CRUD操作
1.insert()
2.insertSelective()
3.updateByPrimaryKeySelective()
4.updateByPrimaryKey()
5.selectByPrimaryKey()
6.deleteByPrimaryKey()
mybatis-generator的運(yùn)行過程
連接數(shù)據(jù)庫——》從數(shù)據(jù)庫的表中獲取字段——》依據(jù)字段生成mapper文件、dao、實體類
命令行生成
三、常見問題
只能逆向生成mapper.xml文件嗎,可否生成annotation的mapper呢?
4.解決方案
將javaclientgenerator參數(shù)中的TYPE值由XMLMAPPER改為ANNOTATEDMAPPER即可
五、編碼實戰(zhàn)
六、擴(kuò)展思考
七、參考文獻(xiàn)
1.官方文檔:http://mbg.cndocs.ml/configreference/xmlconfig.html
2.CSDN博客:http://blog.csdn.net/tolcf/article/details/50835165
八、更多討論
問:如果數(shù)據(jù)庫是下劃線命名,生成的實體類是什么命名?
答:駝峰法
問:除了那幾個生成的基本語句,可以通過mybatis generator自定義SQL語句嗎?
答: 能,但是操作比較麻煩,涉及的知識點比較多
問:生成的xml文件中resultmap能自動生成嗎
答:能
PPT:PPT
感謝大家觀看
今天的分享就到這里啦,歡迎大家點贊、轉(zhuǎn)發(fā)、留言、拍磚~
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現(xiàn)在開始,找個師兄,帶你入門,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷茫”。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化,成長可見化,師兄1對1免費(fèi)指導(dǎo)。快來與我一起學(xué)習(xí)吧~
作者:東
鏈接:http://www.lxweimin.com/p/338d445e7332
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。