方法一:使用标准输出
MyBatis 的配置文件 Configuration 中有相关属性,设属性即可,不用再放一个 log4j.properties 文件。
<configuration> <settings> …… <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> </configuration>
配置完成后,在 IDE 的控制台下可以看到程序运行过程中的 SQL,参数,返回结果等。
方法二:使用第三方日志库
可以参照 API 文档,mybatis - MyBatis 3 中关于 settings 的描述
如需要第三方日志,在项目 src 目录下放相应的配置文件即可。MyBatis 会自动识别。
参照文档,可以看到 mybatis 支持这些日志:
- SLF4J
- LOG4J
- LOG4J2
- JDK_LOGGING
- COMMONS_LOGGING
- STDOUT_LOGGING
- NO_LOGGING
这里以 LOG4J 为例:
第一步:配置 Maven 的 pom.xml 文件
<!--【log4j 日志组件】--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
第二步:配置 MyBatis,如 src/main/resources/mybatis-config.xml
<configuration> <settings> …… <setting name="logImpl" value="LOG4J"/> </settings> </configuration>
第三步:配置 LOG4J,如 src/main/resources/log4j.properties
log4j.rootLogger=DEBUG, Console ## Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout #log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.appender.Console.layout.ConversionPattern=%d %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
控制台输出效果:
2018-06-10 00:47:28,832 DEBUG [org.springframework.web.servlet.DispatcherServlet] - DispatcherServlet with name 'lesjava-blog' processing GET request for [/user/info] 2018-06-10 00:47:28,839 DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Looking up handler method for path /user/info 2018-06-10 00:47:28,844 DEBUG [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] - Returning handler method [public void com.lesjava.blog.controller.UserController.getUserInfo()] 2018-06-10 00:47:28,845 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Returning cached instance of singleton bean 'userController' 2018-06-10 00:47:28,846 DEBUG [org.springframework.web.servlet.DispatcherServlet] - Last-Modified value for [/user/info] is: -1 2018-06-10 00:47:29,748 DEBUG [com.lesjava.blog.mapper.UserMapper.addUser] - ==> Preparing: insert into user (user_name,password,age) values (?, ?, ?) 2018-06-10 00:47:29,765 DEBUG [com.lesjava.blog.mapper.UserMapper.addUser] - ==> Parameters: 温建宝(String), 123456(String), 18(Integer) 2018-06-10 00:47:29,766 DEBUG [com.lesjava.blog.mapper.UserMapper.addUser] - <== Updates: 1 ## 上面 就是输出的 SQL 语句 以及 传入的参数 ##
温馨提示:建议采用方法二,使用 LOG4J 库,更专业些