這就是——通用Mapper

image.png

什么是通用mapper秩贰?

通用mapper 可以極大的方便開發(fā)人員進(jìn)行ORM贩猎,提供極其方便的單表增刪改查。
什么是通用mapper萍膛,一句話簡單說吭服,它就是個輔助mybatis極簡單表開發(fā)的組件。它不是為了替代mybatis蝗罗,而是讓mybatis的開發(fā)更方便艇棕。

可以按照自己的需要選擇通用方法,還能很方便的開發(fā)自己的通用方法串塑。

為什么要用通用mapper沼琉?

原生Mybatis的痛點(diǎn)

1、mapper.xml文件里有大量的sql桩匪,當(dāng)數(shù)據(jù)庫表字段變動打瘪,配置文件就要修改

2、需要自己實(shí)現(xiàn)sql分頁傻昙,select * from table where . . . limit 1,3

自己手寫分頁闺骚,除了傳參page、pageSize妆档,還需要返回條目總數(shù)count僻爽。

3、數(shù)據(jù)庫可移植性差:如果項目更換數(shù)據(jù)庫贾惦,比如oracle-->mysql胸梆,mapper.xml中的sql要重新寫,因為Oracle的PLSQL 和mysql 支持的函數(shù)是不同的须板。

4碰镜、生成的代碼量過大。

5习瑰、批量操作绪颖,批量插入,批量更新杰刽,需要自寫菠发。

快速開始

用過 Mybatis Geneator(MBG)都知道王滤,我們可以通過配置generatorConfig.xml,指定一個數(shù)據(jù)庫以及數(shù)據(jù)庫表滓鸠,可以使用MBG直接生成對應(yīng)的Java Bean實(shí)體類(POJO)雁乡、Mapper.java接口(DAO層接口)、Mapper.xml糜俗,以及實(shí)體類的Example.java踱稍。

這就是類似于Hibernate 的逆向工程。逆向從數(shù)據(jù)庫表生成了實(shí)體類悠抹。

但是這種原生的MBG生成的方式珠月,仍然有一些不足之處。如果再配合使用通用mapper 楔敌,會有更多方便之處啤挎。下面通過對比原生mybatis生成 和 集成通用mapper后的生成,看看具體有什么區(qū)別卵凑。

代碼對比(原生mybatis生成 VS 通用mapper生成)

以單表person庆聘,生成對應(yīng)的Person實(shí)體類為例:

原生mybatis生成:
PersonMapper.xml、Person.java勺卢、PersonMapper.java伙判、PersonExample.java
通用mapper生成:
PersonMapper.xml、Person.java黑忱、PersonMapper.java

原生mybatis生成的POJO中宴抚,純代碼,不包含注解甫煞。
通用mapper生成的POJO中菇曲,屬性加了 (持久化)注解,與數(shù)據(jù)庫字段進(jìn)行匹配危虱。

原生mybatis生成的PersonMapper.xml中羊娃,有很多sql唐全。
通用mapper生成的PersonMapper.xml中埃跷,只有一個POJO與數(shù)據(jù)庫字段的映射<resultMap>。

通用mapper生成的PersonMapper.java接口邮利,extends MyMapper<?>弥雹。

實(shí)際上,MyMapper<?>已經(jīng)提供常用的 單表CRUD方法的實(shí)現(xiàn)延届。
如果還有其他特殊CRUD需求(如多表連接查詢)剪勿,只需自己在PersonMapper.java接口添加方法,對應(yīng)在PersonMapper.xml寫sql就行了方庭。


image2.png

原生mybatis生成的PersonExample.java類厕吉,是和具體的POJO類關(guān)聯(lián)酱固,生成POJO類時,對應(yīng)的Example類也生成(生成配置中头朱,可以選擇不生成)运悲。

PersonExample example = new PersonExample();
example.createCriteria().andEqualTo("id","1");
personMapper.selectByExample(example);

通用mapper的Example類,是通用的项钮,并不是和具體的POJO綁定班眯。構(gòu)造時,只需要傳入實(shí)體類的Class<?>類型烁巫。


image3.png

原生mybatis的批量插入署隘,需要寫sql,進(jìn)行for循環(huán)亚隙。


image4.png

通用mapper磁餐,天然的就支持批量操作。直接調(diào)用personMapper.insertList()


image5.png



實(shí)戰(zhàn) SSM中使用通用mapper

A powerful GUI tool for MyBatisGenerator(MBG)

https://github.com/spawpaw/mybatis-generator-gui-extension

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阿弃,一起剝皮案震驚了整個濱河市崖媚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恤浪,老刑警劉巖畅哑,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異水由,居然都是意外死亡荠呐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進(jìn)店門砂客,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泥张,“玉大人,你說我怎么就攤上這事鞠值∶拇矗” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵彤恶,是天一觀的道長钞钙。 經(jīng)常有香客問我,道長声离,這世上最難降的妖魔是什么芒炼? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮术徊,結(jié)果婚禮上本刽,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好子寓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布暗挑。 她就那樣靜靜地躺著,像睡著了一般斜友。 火紅的嫁衣襯著肌膚如雪窿祥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天蝙寨,我揣著相機(jī)與錄音晒衩,去河邊找鬼。 笑死墙歪,一個胖子當(dāng)著我的面吹牛听系,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虹菲,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼靠胜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毕源?” 一聲冷哼從身側(cè)響起浪漠,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎霎褐,沒想到半個月后址愿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冻璃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年响谓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片省艳。...
    茶點(diǎn)故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡娘纷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跋炕,到底是詐尸還是另有隱情赖晶,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布辐烂,位于F島的核電站遏插,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棉圈。R本人自食惡果不足惜涩堤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望分瘾。 院中可真熱鬧,春花似錦、人聲如沸德召。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽上岗。三九已至福荸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肴掷,已是汗流浹背敬锐。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呆瞻,地道東北人台夺。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像痴脾,于是被迫代替她去往敵國和親颤介。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis 赞赖? MyBatis 是支持定制化 SQL滚朵、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,535評論 0 4
  • 今天和媽媽從超市出來辕近,看見兩個穿著得體的兩個男生推著一輛裝滿家居用品的推車從我們面前走過去,媽媽突然說:“這肯定是...
    余祈萌大師傅閱讀 690評論 0 0
  • 五一之前回老家休假接近兩周匿垄,那段時間特別熱亏推,因為沒人澆水,窗臺上的金銀花在接近花期的時候枯萎了年堆。 回家第一件...
    泥巴bella閱讀 165評論 0 0
  • 初戀難忘吞杭。這點(diǎn)真的贊同,無論那個人怎樣對你变丧,對他芽狗,恨不起來。 所有生活過的東西痒蓬,有些你可能忘記了童擎,但是后來你發(fā)現(xiàn),...
    墨涼非涼閱讀 173評論 0 0
  • ——讀《道德經(jīng)》的胡思亂想 《道德經(jīng)》的偉大無需多言攻晒,我在這里無意褻瀆經(jīng)典顾复,只是將自己學(xué)習(xí)《道德經(jīng)》的所悟所得用通...
    千字君閱讀 728評論 0 0