SpringBoot整合Mybatis+Druid
1.SpringBoot 作為一款約定大於配置的微服務框架,得到了業界的大量推廣和應用。對SpringBoot的學習使用可以有效的幫助開發簡化開發流程,配置過程,部署過程。
2.資料庫的互動是開發過程中很常見的一種業務,資料層的接入方式眾多,JDBC,Spring JdbcTemplate,Hibernate,Mybatis等等。傳統的JDBC因為模板程式碼眾多,侵入式的事物操作極容易出現問題。老牌的Hibernate從物件的角度去看待資料庫,從而在物件層面完全封裝資料庫操作,簡化開發程式碼,提升開發效率。但也隨之帶來了定製化SQL使用困難,業務邏輯模型與資料庫模型耦合度高,資料量大時效能損耗嚴重等一系列問題,導致大型網際網路專案往往對其避之不及。而MyBatis作為一款輕量級、半自動化的ORM框架脫穎而出。SQL與程式碼的分離便於維護管理,邏輯標籤控制SQL的拼接實現動態SQL,查詢結果集與Java物件自動對映,可以編寫原生SQL,方便SQL優化等優點讓更多的開發選擇它。
3.alibaba釋出的Druid,號稱JAVA語言中最好的資料庫連線池,提供強大的監控和擴充套件功能,進一步提升開發人員的SQL優化效率。與其他資料庫連線池的對比:

紙上得來終覺淺,絕知此事要躬行。為了加深對以框架的理解運用,我將以上框架做一次整合運用。技術棧Spring, Spring Boot,Mybatis,Druid,Log4j2, Maven
搭 建 步 驟
第一步:Spring Boot的專案構建
採用maven專案管理工具,目錄結構如下:

第二步:新增依賴
Spring Boot官方文件中解釋,在啟用spring-boot-starter後會預設使用logback作為日誌框架,本專案選用log4j2,因此需要全域性exclude掉Spring Boot預設日誌。

很多教學在spring-boot-starter-web處exclude,這種做法是錯誤的,會導致Spring Boot啟動時發現多個SLF4J bingdings。

Mybatis for Spring Boot 依賴。

資料庫驅動與資料庫連線池依賴。

日誌依賴

第三步:啟動元件掃描
選用Java註解+自動注入的方式配置Spring Bean,需要開啟對特定包的元件掃描。

第四步:配置資料來源
使用Spring Boot整合Druid的方式,通過@ConfigurationProperties來做屬性注入。Spring的事物管理配置非常方便,事物管理配置資料來源即可。

同時在yml檔案中新增資料來源配置。StatviewConfig開啟後可使用druid內建監控。

第五步:配置Mybatis
配置mybatis的SqlSessionFactory。新增MapperScan標籤的同時指定sqlSessionFactiory的引用。

Mybatis的Mapper只能用介面定義,預設情況下需要在mapper interface上新增@Mapper標籤。
第六步:測試
建立Usr物件並在資料庫建立表結構。通過SpringMVC發起對UserService的呼叫,查詢資料庫中的user記錄。最後檢視監控和日誌。
首先我們通過POSTMAN發起GET請求:

接著檢視Druid內建監。URL: http://localhost:8080/druid/index.html,可以發現Druid Monitor已經幫助我們記錄了本次呼叫的SQL,防火牆統計資訊,URL監控等資料。

最後檢視控制檯輸出MyBatis的SQL日誌

OK 打完收工!
進群獲取高清大綱、往期架構視訊、筆記、原始碼等資料。歡迎大家加入Java高階架構群
:855355016
本群提供免費的學習指導架構資料以及免費的解答職業生涯規劃以及面試指導
不懂得問題都可以在本群提出來。
進群修改群備註:開發年限-地區-經驗 方便架構師解答問題。
1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,
需要突破技術瓶頸的。2、在公司待久了,過得很安逸,
但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的。
3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,
常用設計思想,常用java開發框架掌握熟練的。
4、覺得自己很牛B,一般需求都能搞定。
但是所學的知識點沒有系統化,很難在技術領域繼續突破的。
5. 群號:855355016進階高階架構群備註好資訊!裡面有BAT大牛直播授課
進群獲取高清大綱、往期架構視訊、筆記、原始碼等資料
相關文章
- SpringBoot(19)---SpringBoot整合ApolloSpring Boot
- SpringBoot(17)---SpringBoot整合RocketMQSpring BootMQ
- SpringBoot(十六)_springboot整合JasperReSpring Boot
- SpringBoot整合系列-整合JPASpring Boot
- SpringBoot 整合 rabbitmqSpring BootMQ
- SpringBoot 整合 apolloSpring Boot
- SpringBoot 整合 elkSpring Boot
- SpringBoot 整合 elasticsearchSpring BootElasticsearch
- SpringBoot整合elasticsearchSpring BootElasticsearch
- RocketMQ整合SpringBootMQSpring Boot
- springboot整合redis?Spring BootRedis
- SpringBoot整合MinIOSpring Boot
- Springboot整合pagehelperSpring Boot
- ElasticSearch 整合 SpringBootElasticsearchSpring Boot
- springboot 整合LogBackSpring Boot
- SpringBoot整合ESSpring Boot
- springBoot 整合 mybatisSpring BootMyBatis
- SpringBoot整合NacosSpring Boot
- SpringBoot 整合 RedisSpring BootRedis
- SpringBoot整合DubboSpring Boot
- springboot 整合jeagerSpring Boot
- 【SpringBoot】整合RedisSpring BootRedis
- Springboot整合MybatisSpring BootMyBatis
- SpringBoot整合SwaggerSpring BootSwagger
- SpringBoot 整合 dockerSpring BootDocker
- flowable 整合 springbootSpring Boot
- Springboot整合RabbitMQSpring BootMQ
- springBoot整合flowableSpring Boot
- Springboot整合MyabitsSpring Boot
- SpringBoot整合RedisSpring BootRedis
- springBoot整合thymeleafSpring Boot
- springboot整合druidSpring BootUI
- SpringBoot整合MQTTSpring BootMQQT
- SpringBoot整合系列–整合MyBatis-plusSpring BootMyBatis
- SpringBoot整合系列-整合H2Spring Boot
- SpringSession系列-整合SpringBootGseSessionSpring Boot
- SpringBoot整合測試Spring Boot
- SpringBoot整合說明Spring Boot