国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - MyBatis3用log4j在控制臺輸出SQL的方法示例

MyBatis3用log4j在控制臺輸出SQL的方法示例

2021-03-29 10:18微wx笑 JAVA教程

本篇文章主要介紹了MyBatis3用log4j在控制臺輸出SQL的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

為什么要在控制臺輸出 SQL 呢?

當然是為了開發調試的時候方便了。

如果一個 數據庫相關的操作出現了問題,我們可以根據輸出的SQL語句快速排查問題。

輸出的信息:

[org.mybatis.spring.SqlSessionUtils]-Creating a new SqlSession 
[org.mybatis.spring.SqlSessionUtils]-SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@33290f98] was not registered for synchronization because synchronization is not active 
[org.springframework.jdbc.datasource.DataSourceUtils]-Fetching JDBC Connection from DataSource 
[org.mybatis.spring.transaction.SpringManagedTransaction]-JDBC Connection [jdbc:mysql://rds.aliyuncs.com:3306/yyyy?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull, UserName=223323@222.222.xxx.xxx, MySQL Connector Java] will not be managed by Spring 
[Datenumber.pageSelect]-==>  Preparing: SELECT x.Id, DATE_FORMAT(x.`Date`, '%Y%m%d') `datestr`, x.befor_num, x.after_num, x.physician_id, y.department_id, y.clinic_id, y.true_name, y.avatar, y.title, y.telephone FROM datenumber x right join physician y on x.physician_id=y.id AND ( x.`Date` >= ? AND x.`Date` <= ? ) Where 1=1 AND y.clinic_id = ? ORDER BY x.Date ASC  
[Datenumber.pageSelect]-==> Parameters: 2017-3-28(String), 2017-4-4(String), 1(Long) 
[Datenumber.pageSelect]-<==      Total: 19 

輸出的內容比較可怕,數據庫連接字符,用戶名密碼都輸出來了,一定要小心。

不過有一點不好的是SQL語句和參數是分開輸出的,想復制到查詢工具中調試的話還得自己填寫參數,比較麻煩。

我的項目環境

Spring 4.0.2 + Spring MVC 4.0.2 + MyBatis 3.2.6

方法一:使用標準日志輸出

此方法比較簡單,只需要配置 MyBatis 的配置文件 Configuration 中有相關屬性即可,不用再放一個 log4j.properties 文件。

?
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>
</configuration>

關鍵語句:

?
1
<setting name="logImpl" value="STDOUT_LOGGING"/>

指定 MyBatis 應該使用哪個日志記錄實現。如果此設置不存在,則會自動發現日志記錄實現。

方法二:使用log4j日志輸出

1、spring-mybatis.xml 文件不需要修改;

2、在mybatis.xml中,指定使用log4j為日志實現,這個我實際測試也不需要。

?
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
    <setting name="logImpl" value="LOG4J"/>
  </settings>
</configuration>
<!-- 實際測試這個文件有沒有都可以 -->

這里的value值可以是SLF4J、Apache Commons Logging、Log4J2、Log4J、JDK logging(除Log4J2、Log4J外,其他未驗證),并會按順序查找

3、在web.xml中也需要配置

?
1
2
3
<listener>
   <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>

或者用下面的(未測試)

?
1
2
3
<listener>
    <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
  </listener>

4、最后配置log4j.properties

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
### Log4j配置 ###
### 與Spring結合需要在web.xml中指定此文件位置,并添加監聽器 ###
#定義log4j的輸出級別和輸出目的地(目的地可以自定義名稱,和后面的對應)
#[ level ] , appenderName1 , appenderName2
log4j.rootLogger=DEBUG,console,file
 
#-----------------------------------#
#1 定義日志輸出目的地為控制臺
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
####可以靈活地指定日志輸出格式,下面一行是指定具體的格式 ###
#%c: 輸出日志信息所屬的類目,通常就是所在類的全名
#%m: 輸出代碼中指定的消息,產生的日志具體信息 
#%n: 輸出一個回車換行符,Windows平臺為"/r/n",Unix平臺為"/n"輸出日志信息換行
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
 
#-----------------------------------#
#2 文件大小到達指定尺寸的時候產生一個新的文件 
log4j.appender.file = org.apache.log4j.RollingFileAppender
#日志文件輸出目錄
log4j.appender.file.File=log/tibet.log
#定義文件最大大小
log4j.appender.file.MaxFileSize=10mb
###輸出日志信息###
#最低級別
log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
 
#-----------------------------------#
#3 druid
log4j.logger.druid.sql=INFO
log4j.logger.druid.sql.DataSource=info
log4j.logger.druid.sql.Connection=info
log4j.logger.druid.sql.Statement=info
log4j.logger.druid.sql.ResultSet=info
  
#4 mybatis 顯示SQL語句部分
log4j.logger.org.mybatis=DEBUG
#log4j.logger.cn.tibet.cas.dao=DEBUG
#log4j.logger.org.mybatis.common.jdbc.SimpleDataSource=DEBUG
#log4j.logger.org.mybatis.common.jdbc.ScriptRunner=DEBUG
#log4j.logger.org.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
#log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

兩種方式比較

1、使用標準日志輸出配置簡單,使用log4j日志輸出配置相對復雜;

2、log4j功能強大,控制粒度比較細;

當在配置文件中指定為“ STDOUT_LOGGING”時,實際使用的是哪一個日志實現?Apache Commons Logging 還是JDK logging ?

都不是,實際是 System.out.pringln.

2017-09-14更新

有小伙伴反饋按第二種方法配置后不輸出SQL 語句,請注意 log4j.properties 文件中的:

?
1
log4j.appender.console.Threshold=DEBUG

是否與本例一致!

請注意細節,剛開始學習的朋友可以先完全使用本例提供的配置,得到正確的輸出后再做個性定制。
另外,按照我上面的配置會輸出大量 SQL 語句之外的信息,一位朋友嘗試出只輸出 SQL 語句、參數、結果的配置方法,

在此表示感謝并分享給大家:

MyBatis3用log4j在控制臺輸出SQL的方法示例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/testcs_dn/article/details/67640212

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美在线a | 色a视频 | 激情成人综合 | 成人亚洲欧美 | 欧美久久久 | a在线观看 | 欧洲一级毛片 | 能看的av网站| 亚洲免费在线 | 国产精品久久久久久亚洲调教 | 欧美日韩三级 | 日本在线视频一区二区三区 | 亚洲欧美精品一区二区 | 中文字幕国产视频 | 亚洲国产aⅴ成人精品无吗 成人午夜视频在线观看 | 岛国一区 | 欧美日韩久久久 | 日韩电影中文字幕 | 日韩成人影院 | 欧美在线观看一区 | 日b片| 一级黄色片子看看 | 国产综合精品一区二区三区 | 久久久久国产一区二区三区 | 操操网站| 久久亚洲欧美日韩精品专区 | 色伊人| 国产经典一区 | 国产精品国产三级国产aⅴ中文 | 激情婷婷丁香 | 中文字幕日本一区二区 | 国产精品国产三级国产aⅴ原创 | 午夜av影院 | 91久久精品一区二区二区 | 亚洲精品欧美 | 免费看一区二区三区 | 国产伦精品一区二区三区精品视频 | 午夜久久乐| 亚洲成人观看 | 欧美freesex黑人又粗又大 | 亚洲一区 日韩精品 中文字幕 |