`
asael
  • 浏览: 34223 次
  • 性别: Icon_minigender_1
  • 来自: 福建省福州
社区版块
存档分类
最新评论

ibatis 查看执行时候的sql语句

    博客分类:
  • j2ee
阅读更多

有两种方法

方法一:修改log4j的配置文件,添加以下内容:

# SqlMap logging configuration...
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

 方法二:在项目中使用p6spy(这里先假定在项目中使用了spring,当然不使用spring也是可以使用这个包查看sql的,不过配置就不是这样配置了)

    去http://www.p6spy.com/survey.html下载p6spy-install.zip,解压里面的p6spy.jar到/web-inf/lib目录中

 1.  在spring的配置文件中添加P6DataSource。列出部分配置代码如下:

<!-- 配置数据源,这里数据源使用的是c3p0 -->
<bean id="dataSource"
  class="com.mchange.v2.c3p0.ComboPooledDataSource"
  destroy-method="close">
  <property name="driverClass"   value="${connection.driver_class}" />
  <property name="jdbcUrl" value="${connection.url}" />
  <property name="user" value="${connection.username}" />
  <property name="password"   value="${connection.password}" />
  <property name="minPoolSize"   value="${c3p0.minPoolSize}" />
  <property name="maxPoolSize"   value="${c3p0.maxPoolSize}" />
  <property name="initialPoolSize"   value="${c3p0.initialPoolSize}" />
  <property name="maxIdleTime"   value="${c3p0.maxIdleTime}" />
  <property name="acquireIncrement"   value="${c3p0.acquireIncrement}" />
  <property name="maxStatements"   value="${c3p0.maxStatements}" />
  <property name="idleConnectionTestPeriod"   value="${c3p0.idleConnectionTestPeriod}" />
  <property name="acquireRetryAttempts"  value="${c3p0.acquireRetryAttempts}" />
  <property name="breakAfterAcquireFailure"   value="${c3p0.breakAfterAcquireFailure}" />
  <property name="testConnectionOnCheckout"  value="${c3p0.testConnectionOnCheckout}" />
 </bean>
<!--  spy dataSource -->      
<bean id="spyDataSource" class="com.p6spy.engine.spy.P6DataSource">         
    <constructor-arg>         
        <ref local="dataSource"/>         
    </constructor-arg>         
</bean> 
<!-- sqlMapClent 配置 -->
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="classpath:SqlMapConfig.xml" />
  <property name="dataSource" ref="spyDataSource" />
 </bean>

 2.  在下载的p6spy-install.zip包中找到spy.properties,复制到classpath中,并且修改以下参数。

#realdriver=org.gjt.mm.mysql.Driver    #第54行注释掉
dateformat=yyyy-MM-dd HH\:mm\:ss,SSS    #输出的时候加上时间,方便查看
#appender=com.p6spy.engine.logging.appender.Log4jLogger  #不清楚干嘛用的,没用,注释掉
appender=com.p6spy.engine.logging.appender.StdoutLogger   #在控制台输出,一般我们都用控制台输出
#appender=com.p6spy.engine.logging.appender.FileLogger    #输出在文件里,这样控制台上就看不到了
logfile=d:/logs/IbatisDemo- spy.log    #sql语句的输出位置,只有appender选择的是文件的时候,这个选项有效
log4j.logger.p6spy=warn,STDOUT    #把info改成warn,少看些没用的信息

   一般有用的配置就这些了,还有其它的一些参数没去研究是什么用处,有空再研究研究。

 

    好了,配置好以上内容,在代码执行到数据库操作的时候,p6spy就会自动在控制台输出sql语句了,不只可以在ibatis上使用,在hibernate上也可以用,在hibernate上用的时候,就不用再去看它自动生成的那难看的sql语句了

 

 

 

 

分享到:
评论
1 楼 di1984HIT 2014-01-02  
恩,学习了,写的不错。

相关推荐

    在ibatis日志信息中打印SQL语句的方法(个人总结)

    在使用iBatis(现为MyBatis)作为持久层框架进行开发时,有时我们需要调试SQL语句,以便查看执行的SQL、优化性能或者解决查询问题。本文将详细讲解如何在iBatis日志信息中打印SQL语句,以便更好地理解和优化数据库...

    ibatis16个常用sql语句

    iBatis 16个常用SQL语句 iBatis是一个基于Java的持久层框架,提供了一个简洁的方式来访问和操作数据库。在iBatis中,SQL语句是通过XML文件来配置的。下面是16个常用的iBatis SQL语句,涵盖了基本的CRUD(Create、...

    iBatis的动态SQL语句

    ### iBatis中的动态SQL语句详解 #### 引言 在进行数据库操作时,我们经常需要根据不同的条件构建不同的SQL语句。这种需求在实际开发中极为常见,尤其是在处理复杂的查询逻辑时。iBatis(现在通常被称为MyBatis)...

    ibatis常用sql语句

    标题与描述概述的知识点主要集中在iBATIS框架的SQL映射技术上,特别是针对不同类型的输入参数如何在iBATIS中构建SQL语句。以下是对这些知识点的详细展开: ### iBATIS SQL映射技术概览 iBATIS是早期流行的Java持久...

    使用P6spy打印ibatis执行的SQL语句

    本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...

    ibatis2包和能显示执行的sql语句的ibatis2.jar

    默认情况下,Ibatis并不自动打印执行的SQL,但可以通过设置log4j、logback或其他日志系统的配置,启用日志输出,从而查看应用程序运行时执行的SQL语句。例如,如果你使用的是log4j,可以在配置文件中添加以下内容: ...

    WAS上log4j日志不能输出(ibatis)sql语句解决办法[借鉴].pdf

    WAS 上 log4j 日志不能输出(ibatis)sql 语句解决办法 在部署到 WAS 服务器上的 CMSII 系统中,ibatis 的 sql 语句不能输出日志的问题。解决该问题需要改变 WAS 的默认 LogFactory 实现类,使其使用 log4j 框架下...

    Ibatis常用sql语句

    根据给定的文件信息,以下是对“Ibatis常用SQL语句”的详细解析,涵盖了一系列Ibatis在数据操作中的应用实例。 ### Ibatis简介 Ibatis是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。Ibatis可以让...

    ibatis sql 语句的编写

    ### ibatis SQL语句编写详解 #### 一、引言 在软件开发过程中,数据库操作是必不可少的一部分。Ibatis(现称为MyBatis)作为一款优秀的持久层框架,提供了非常灵活的方式来处理SQL语句,使得Java开发者能够更加...

    将SQl语句转换成Ibatis之Xml文件语句

    用Ibatis时,配置sql语句时候 如果直接从sql里面把语句拷出来,玩玩格式不严谨,我写了这个工具来帮助我们格式化sql语句

    查看ibatis后台sql

    通过java程序查看ibatis配置文件中的sql语句(注:无法查看变量值)

    iBatis.net使用动态sql语句

    因为要下载其它的文件,所以从网站复制了一些其它的资源进行上传。但是这个资源是相当有用的。这里感谢之前总结相关技术的人员。谢谢

    ibatis打印sql

    标题 "ibatis打印sql" 涉及到的是在使用iBATIS(一个轻量级的持久层框架)时如何调试和查看SQL语句的方法。iBATIS允许开发者编写SQL语句并将其与Java代码集成,以实现灵活的数据访问。在开发过程中,为了调试和优化...

    sql语句中用问号代替参数

    2. **提高性能**:预编译的SQL语句可以在数据库中缓存,多次执行相同结构但不同参数的查询时,可以显著提高执行效率。数据库只需解析一次SQL模板,然后用新参数替换问号即可。 3. **减少错误**:动态构建SQL字符串...

    ibatis常用的sql

    根据提供的文件信息,本文将对ibatis常用的SQL语句进行详细的解析与说明。这些SQL语句主要用于Oracle数据库中,涉及到了删除、插入以及查询等基本操作,并且在ibatis框架中实现了参数化处理。 ### 一、删除操作 ...

    iBatis执行非查询语句(CRUD,函数和过程)

    iBatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码直接结合,提供了灵活的数据访问接口。这篇博客“iBatis执行非查询语句(CRUD,函数和过程)”深入探讨了如何在iBatis中执行创建、读取、更新和...

    ibatis sql语句对条件中特殊字符% # 处理

    ### ibatis SQL语句对条件中特殊字符% # 处理 在开发过程中,经常会遇到SQL查询时需要处理字符串中的特殊字符的情况。特别是在使用类似`LIKE`这样的操作符时,如果用户输入的数据中含有`%`、`_`或`#`等特殊字符,...

    ibatis动态SQL标签用法

    iBatis提供了动态SQL片段的功能,可以将SQL语句拆分成小的、独立的片段,然后根据不同的条件组合这些片段生成最终的SQL语句。这可以提高代码的可重用性和灵活性。 例如,在上面的代码中,我们定义了三个动态SQL片段...

    根据MyBatis或iBatis的SQLMapper文件反向生成数据库表

    根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...

Global site tag (gtag.js) - Google Analytics