Mybatis有什么用
前兩天跟阿里的大牛聊天,他講到對于性能要求高,需求變化多的互聯網項目來說,用在sql優化上的開發時間是大頭,有時候代碼寫出來一小時,優化反反復復可能要幾個星期,這時候Mybatis這種配置比較靈活的框架優勢就顯現了!Mybatis為什么在國內這么流行?
1. 什么是Mybatis?
MyBatis是支持定制化sql、存儲過程以及高級映射的優秀的持久層框架。MyBatis避免了幾乎所有的JDBC代碼和手工設置參數以及抽取結果集。MyBatis使用簡單的XML或注解來配置和映射基本體,將接口和Java映射成數據庫中的記錄。
2. Mybatis為什么有優勢?
l 簡單易學:本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar文件+配置幾個sql映射文件易于學習,易于使用,與JDBC相比,減少了50%以上的代碼量。
l 靈活:Mybatis 不會對應用程序或者數據庫的現有設計強加任何影響,SQL寫在XML里,從程序代碼中徹底分離,降低耦合度,便于統一管理和優化,可重用。
l 解除sql與程序代碼的耦合:通過提供DAO層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。sql和代碼的分離,提高了可維護性。
l 提供映射標簽,支持對象與數據庫的ORM字段關系映射
l 提供對象關系映射標簽,支持對象關系組建維護
l 提供XML標簽,支持編寫動態sql。
3. Mybatis為什么在國內這么流行?
1、歷史悠久
MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目改名為MyBatis 。
2、阿里推動
其實十年前我們主要使用的ORM框架就是iBatis,而阿里巴巴是對國內Java開發者影響最大的一家公司。阿里在國內Java社區的影響力有目共睹,阿里對Java社區貢獻了很多實用的開源工具,并且國內Java開發者對于阿里開源的產品接納程度也最高。
早期阿里系離職工程師的影響力也不可小覷,這些從阿里離職的工程師進入了各個規模的公司, 通常也有擔任較高的職位, 擁有著相對較多的話語權, 在新公司繼續使用自己熟悉的iBatis就是再正常不過的了。
3、互聯網大環境下的選擇
MyBatis封裝較少,提供的切入點較多,適合進行架構。遇到超級復雜的場景的時候有不錯的sql支持。簡單高效,優化起來也方便,比較符合現在的開發節奏,互聯網公司都是先快速開發占領市場,然后再優化代碼。而且這個過程需求經常是變來變去的,開發人員也有流動性,為了便于管理,所以大家都選擇了Mybatis。
好了,開始咱今天的正文
MyBatis Log是IDEA一款下載量非常高的插件,該插件可以對控制臺打印的日志進行解析,然后將對應的SQL語句整理并拼接好對應的參數,非常方便。有時插件卻無法打印SQL,總的來說,有如下三種原因:
mybatis安裝地址
https://plugins.jetbrains.com/plugin/10065-mybatis-log-plugin/versions
1. 項目的日志等級過高,修改日志等級為 DEBUG 或 INFO
1
2
3
4
5
6
7
8
9
|
## log4j.properties 文件 log4j.rootLogger = DEBUG,stdout,D 或者 ## application-dev.yml 文件 loggig: level: root: DEBUG |
2. mybatis配置中沒有設置將sql日志輸出到控制臺
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
## mybatis-config.xml 文件 <configuration> <settings> <setting name= "logImpl" value= "org.apache.ibatis.logging.stdout.StdOutImpl" /> </settings> </configuration> 或者 ## application-dev.yml 文件 mybatis-plus: configuration: ## 日志 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl |
3. 控制臺打印的日志格式不符合規范,插件無法解析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
修改日志打印的格式即可,推薦格式如下: ## log4j.properties 文件 ###控制臺日志輸出### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%p] - [%t] - [%d{yyyy-MM-dd HH\:mm\:ss\:SSS}] - (%c{ 1 }\:%L) - %m%n 或者 ## application.yml 文件 # 日志設置配置 logging: pattern: console: '%X{RequestNo}-%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}[%L] - %msg%n' |
總結
到此這篇關于MyBatis Log 插件無法顯示SQL語句的原因的文章就介紹到這了,更多相關MyBatis Log 插件無法顯示SQL語句內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/qq_41057885/article/details/108741380