1. 問題描述
Java操作數據庫的兩台流行天王-mybatis和hibernate,mytabis和hibernate的區別不想廢話了,以前用hibernate,最近幾年一直用的mybatis,目前Java連接數據庫的方式基本都是preparedstatement,留好占位符,根據前端傳入進行sql拼接,每個項目中總有那么幾個:參數多,又是大於等於,又是日期轉換,又是模糊查詢的Sql,導致在數據庫報錯報錯后,定位問題比較困難。
Idea開啟Debug模式,日志打印示例(示例比較簡單,能說明問題就好):
[http-nio-9107-exec-1] JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@f3a2023] will not be managed by Spring
[http-nio-9107-exec-1] ==> Preparing: select * from hp_config where status ='1' and type = ? ORDER BY type
[http-nio-9107-exec-1] ==> Parameters: 2(String)
2. 解決方案
使用mybatis插件神器:MyBatis Log Plugin,參數自動賦值到占位符中,生成數據庫可執行SQL,將SQL復制到數據庫中執行,就能很快定位到問題了。
2.1 插件安裝
2.2 插件效果及說明
插件可以在Idea的Tools下點擊啟動,也可以使用快捷鍵啟動(ctrl+shift+alt+o)。
需特別說明的是:
要以Debug模式啟動應用,並且日志級別也要是Debug。