Mybatis辅助神器-MyBatis Log Plugin,定位java中SQL问题

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 插件安装

Mybatis辅助神器-MyBatis Log Plugin_mybatis

2.2 插件效果及说明

插件可以在Idea的Tools下点击启动,也可以使用快捷键启动(ctrl+shift+alt+o)。

Mybatis辅助神器-MyBatis Log Plugin_mybatis_02

需特别说明的是:

要以Debug模式启动应用,并且日志级别也要是Debug。

Mybatis辅助神器-MyBatis Log Plugin_mybatis_03