`
征途2010
  • 浏览: 246570 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mybatis打印sql

    博客分类:
  • java
阅读更多

我们在使用mybatis开发过程中,经常需要打印sql以及输入输出,下面说一下mybatis结合log4j打印sql的。

1、添加mybatis配置

mybatis的日志打印方式比较多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,可以根据自己的需要进行配置。

建议在mybatis.xml中添加如下配置,因为有些web容器(websphere、jboss等)中自带私有日志,如果我们不配置mybatis默认会使用容器私有日志组件,而不是使用log4j

<settings>
		<setting name="logImpl" value="LOG4J"/>
</settings>

 

2、log4j.xml配置

mybatis日志打印sql,由于我们用的是mybatis3.3,高于mybatis3.2

   所以如果需要打印查询sql、参数和结果,则配置如下:

  

 <logger name="com.example.mapper" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="SQL_DEBUG" />
		<appender-ref ref="SQL_INFO" />
		<appender-ref ref="SQL_ERROR" />
	</logger>

 

其中name中填写的是mapper中的namespace路径:预约模块的都是com.example.mapper

如果mybatis低于3.2则配置才会需要添加下面的配置

 

<logger name="com.ibatis" additivity="true"> 
        <level value="DEBUG" /> 
        <appender-ref ref="STDOUT" />
	<appender-ref ref="DEBUG" />
</logger> 
<logger name="java.sql" additivity="true"> 
        <level value="DEBUG" /> 
        <appender-ref ref="STDOUT" />
	<appender-ref ref="DEBUG" />
</logger> 

 

3、如果需要将sql单独打印,则添加如下配置

<appender name="SQL_DEBUG" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="log/sql/debug.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %l - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG" />
			<param name="LevelMax" value="DEBUG" />
		</filter>
	</appender>

 

4、建议日志additivity属性配置为false,这样可以避免日志重复打印,

当然这也需要看情况,如果需要结合上下文日志来跟踪问题,可以设置为true。

 

分享到:
评论

相关推荐

    ideal mybatis打印sql插件

    把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -&gt; MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...

    mybatis打印出sql

    配置MyBatis打印SQL的关键在于正确配置Log4j以及MyBatis的SqlSessionFactory。首先,我们需要使用提供的`log4j.properties`文件进行配置。这个文件是Log4j的日志配置文件,通过它可以设定不同级别的日志输出,例如...

    mybatis慢SQL插件

    基于mybatis的慢SQL小插件,原理是mybatis拦截器。只需要在springboot的配置文件做简单的配置,mybatis拦截器将SQL中所有参数自动做了填充。拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL...

    mybatis Sql打印两种方式

    MyBatis提供了一种更灵活的方式来打印SQL,即使用拦截器(Interceptor)。拦截器可以拦截并处理MyBatis执行过程中的各种事件,例如SQL的准备、执行等。要实现SQL打印,我们可以自定义一个拦截器类,继承`org.apache...

    mybatis打印SQL的log4j

    要让MyBatis使用Log4j打印SQL,我们需要进行以下步骤: 1. **引入Log4j依赖**:在项目中添加Log4j的依赖库,通常是在Maven或Gradle的构建文件中指定。如果使用的是JAR包,需要将其放入项目的类路径中。 2. **配置...

    Mybatis Log(自动填充sql参数打印到控制台)

    Mybatis 提供了一种日志机制,能够自动填充SQL参数并打印到控制台,这对于排查问题和理解查询逻辑非常有帮助。 首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL...

    mybatis查询入门(log4j控制台sql语句日记输出的)

    【标题】"mybatis查询入门(log4j控制台sql语句日记输出的)"涉及的知识点主要集中在MyBatis框架的基础使用以及如何通过Log4j在控制台输出SQL语句,以便于调试和优化数据库操作。MyBatis是一个轻量级的Java持久层框架...

    idea插件-mybatis-打印sql

    本文将深入探讨如何在IntelliJ IDEA中安装并使用"MyBatis Log Plugin"插件,以实现MyBatis SQL打印功能,帮助开发者更便捷地进行数据库调试。 首先,我们需要了解"MyBatis Log Plugin"插件的作用。MyBatis是一个...

    原样输出mybatis的sql执行语句(mysql和oracle都可用).zip

    我们可以创建一个自定义的AOP切面,拦截MyBatis的SqlSession操作,记录并打印SQL语句。首先,定义一个切入点表达式,例如: ```java @Pointcut("execution(* org.apache.ibatis.session.defaults....

    idea插件mybaits log 打印sql语句

    标题 "idea插件mybaits log 打印sql语句" 涉及的是一个针对IntelliJ IDEA的MyBatis日志插件,它的主要功能是帮助开发者在开发过程中实时查看并打印出MyBatis执行的SQL语句。这个功能对于调试和优化数据库查询非常...

    springboot+mybatis+sqlserver 仓库管理系统

    《SpringBoot+Mybatis+SQLServer构建的仓库管理系统详解》 在现代企业信息化管理中,仓库管理系统扮演着至关重要的角色,它能够有效地管理和追踪库存,提高运营效率。本项目是基于SpringBoot框架,结合Mybatis持久...

    mybatis+spring 框架中配置日志中显示sql语句

    为了打印SQL,我们需要将`logger`的级别设为`DEBUG`,并包含MyBatis的包名。以下是一个基本的`logback.xml`示例: ```xml &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ...

    idea mybatislog 日志打印 打印完整sql

    如果你的项目中没有明确指定日志框架,MyBatis将无法打印SQL。因此,确保项目中包含一个有效的日志实现库是第一步。 1. **配置日志框架**: - **Log4j**: 在项目中添加log4j的依赖,并在`log4j.properties`或`log4...

    mybatis 插件: 打印 sql 及其执行时间实现方法

    MyBatis 插件:打印 SQL 及其执行时间实现方法 MyBatis 提供了插件机制,允许开发者在特定的点拦截已经映射语句的执行。默认情况下,MyBatis 允许使用插件来拦截方法调用,例如 Executor、ParameterHandler、...

    mybatis SQL日志解析

    mybatis SQL日志解析;查看日志时mybatis打印的日志查询条件以及参数不是拼接好的,想复制对应sql在本地执行时比较麻烦,通过前端编写页面进行日志解析,拼接sql中的问号以及参数变课轻松实现

    springboot+mybatis配置控制台打印sql日志的方法

    在Spring Boot集成MyBatis的项目中,有时候我们需要在控制台打印SQL日志,以便于调试和优化数据库操作。本文将详细介绍如何配置Spring Boot和MyBatis以实现控制台打印SQL日志的功能。 首先,Spring Boot默认使用的...

    springboot+mybatis+sql日志

    在这个"springboot+mybatis+sql日志"的主题中,我们将探讨如何在Spring Boot应用中整合MyBatis,并通过Logback实现动态打印SQL日志,以及根据不同包名将日志输出到不同的文件。 首先,Spring Boot与MyBatis的集成...

    mybatisx,一款打印项目sql在日志中的插件

    - 在开发环境中使用,避免在生产环境中大量打印SQL日志,以免对性能造成影响。 总的来说,MybatisX作为一款强大的Mybatis插件,为开发人员提供了方便、高效的SQL调试工具,有助于提升项目的质量和开发效率。通过对...

    eclipse开发java使用mybatis打印不带问号的可执行sql

    本人开发人员,平常也是在CSDN下载资料,现在不需要积分的少了,所以我也得赚点积分,绝对提高你的开发效率。eclipse开发java使用mybatis打印不带问号的可执行sql

    Mybatis日志中的SQL解析工具(网页版).html

    Mybatis日志中的SQL解析工具(网页版) 说明:复制日志时,必须注意,日志必须包含Preparing:和Parameters:全部内容,而且日志换行格式要保留,不要复制成纯文本,直接ctrl+c即可。

Global site tag (gtag.js) - Google Analytics