微服務:如何優雅的使用Mybatis

我的比較喜歡 jpa 這種極簡的模式,可是爲了項目保持統一性技術選型仍是定了 mybatis。到網上找了一下關於 spring boot 和 mybatis 組合的相關資料,各類各樣的形式都有,看的人心累,結合了 mybatis 的官方 demo 和文檔終於找到了最簡的兩種模式,花了一天時間總結後分享出來。
orm 框架的本質是簡化編程中操做數據庫的編碼,發展到如今基本上就剩兩家了,一個是宣稱能夠不用寫一句 sQ L的 hibernate,一個是能夠靈活調試動態sql的mybatis,二者各有特色,在企業級系統開發中能夠根據需求靈活使用。發現一個有趣的現象:傳統企業大都喜歡使用
hibernate,互聯網行業一般使用mybatis。hibernate特色就是全部的sql都用Java代碼來生成,不用跳出程序去寫(看)sql,有着編程的完整性,發展到最頂端就是spring data jpa這種模式了,基本上根據方法名就能夠生成對應的sql了,有不太瞭解的能夠看個人上篇文章構建微服務:spring data jpa的使用。
mybatis初期使用比較麻煩,須要各類配置文件、實體類、dao層映射關聯、還有一大推其它配置。固然mybatis也發現了這種弊端,初期開發了generator能夠根據表結果自動生產實體類、配置文件和dao層代碼,能夠減輕一部分開發量;後期也進行了大量的優化可使用註解了,自動管理dao層和配置文件等,發展到最頂端就是今天要講的這種模式了,mybatis-spring-boot-starter就是springboot+mybatis能夠徹底註解不用配置文件,也能夠簡單配置輕鬆上手。
「如今想一想spring boot 就是牛逼呀,任何東西只要關聯到spring boot都是化繁爲簡。
mybatis-spring-boot-starter
官方說明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring Boot

其實就是myBatis看spring boot這麼火熱也開發出一套解決方案來湊湊熱鬧,但這一湊確實解決了不少問題,使用起來確實順暢了許多。 mybatis-spring-boot-starter 主要有兩種解決方案,一種是使用註解解決一切問題,一種是簡化後的老傳統。spring

固然任何模式都須要首先引入 mybatis-spring-boot-starter 的 pom 文件,如今最新版本是1.1.1sql

 


好了下來分別介紹兩種開發模式
 無配置文件註解版 就是一切使用註解搞定。數據庫

1 添加相關maven文件編程

 

 

 

完整的pom包這裏就不貼了,你們直接看源碼springboot


二、application.properties 添加相關配置mybatis

 

 

springboot會自動加載spring.datasource.*相關配置,數據源就會自動注入到sqlSessionFactory中,sqlSessionFactory會自動注入到Mapper中,對了你一切都不用管了,直接拿起來使用就好了。app

在啓動類中添加對mapper包掃描@MapperScan框架

 

或者直接在Mapper類上面添加註解@Mapper,建議使用上面那種,否則每一個mapper加個註解也挺麻煩的maven


三、開發Mapperspring-boot

第三步是最關鍵的一塊,sql生產都在這裏

 

 

 

爲了更接近生產我特意將user_sex、nick_name兩個屬性在數據庫加了下劃線和實體類屬性名不一致,另外user_sex使用了枚舉
「● @Select 是查詢類的註解,全部的查詢均使用這個● @Result 修飾返回的結果集,關聯實體類屬性和數據庫字段一一對應,若是實體類屬性和數據庫屬性名保持一致,就不須要這個屬性來修飾。● @Insert 插入數據庫使用,直接傳入實體類會自動解析屬性到對應的值● @Update 負責修改,也能夠直接傳入對象● @delete 負責刪除「注意,使用#符號和$符號的不一樣:

 

 

四、使用

上面三步就基本完成了相關dao層開發,使用的時候看成普通的類注入進入就能夠了

 

 

源碼中controler層有完整的增刪改查,這裏就不貼了

 極簡 xml 版本
極簡xml版本保持映射文件的老傳統,優化主要體如今不須要實現dao的是實現層,系統會自動根據方法名在映射文件中找對應的sql.
一、配置pom文件和上個版本同樣,只是application.properties新增如下配置

 

指定了mybatis基礎配置文件和實體類映射文件的地址

mybatis-config.xml 配置

 

這裏也能夠添加一些mybatis基礎的配置

二、添加User的映射文件

 

 

 

其實就是把上個版本中mapper的sql搬到了這裏的xml中了
三、編寫Dao層的代碼

 

對比上一步這裏所有隻剩了接口方法


四、使用
使用和上個版本沒有任何區別,你們就看代碼吧
如何選擇兩種模式各有特色,註解版適合簡單快速的模式,其實像如今流行的這種微服務模式,一個微服務就會對應一個自已的數據庫,多表鏈接查詢的需求會大大的下降,會愈來愈適合這種模式。老傳統模式比適合大型項目,能夠靈活的動態生成SQL,方便調整SQL,也有痛痛快快,洋洋灑灑的寫SQL的感受。

相關文章
相關標籤/搜索