- 浏览: 303728 次
- 性别:
- 来自: 广州
最新评论
-
qipa2015:
hao
Android中自定义SeekBar的背景颜色,进度条颜色,以及滑块的图片 -
chungehenyy:
Android中的JSON详细总结 -
wangys198:
请教下怎么加入一个jar包
说说APK反编译(代码插入)的那点事 -
andy199:
Android的TextView使用Html来处理图片显示、字体样式、超链接等 -
tyjxf:
加载图片是个烦人的事,我也正在困扰中
Android实现ListView异步加载图片
使用hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全是像PreparedStatement一样,用?来代替的。
用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。
p6spy: http://www.p6spy.com
SQL Profile:http://sourceforge.net/projects/sqlprofiler/
一、下载p6spy-install.zip
官方:http://www.p6spy.com/
解压:p6spy-install.zip,
把根目录下的p7spy.jar 复制到 WEB-INF\lib\下,
spy.properties 复制到 WEB-INF\classes\下
二、修改spy.properties文件
开启42行
# oracle driver
realdriver=oracle.jdbc.driver.OracleDriver
关闭54行
# the mysql open source driver
#realdriver=org.gjt.mm.mysql.Driver
修改168行,日志存放位置
logfile = c:/spy.log
三、修改spring配置文件
<bean id="loadPropertiesConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:connectionPool.properties</value>
</property>
</bean>
<bean id="proxoolDataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="alias">
<value>${proxool.alias}</value>
</property>
<property name="driver">
<value>${proxool.driver}</value>
</property>
<property name="driverUrl">
<value>${proxool.url}</value>
</property>
<property name="user">
<value>${proxool.username}</value>
</property>
<property name="password">
<value>${proxool.password}</value>
</property>
<property name="minimumConnectionCount">
<value>${proxool.minimumConnectionCount}</value>
</property>
<property name="maximumConnectionCount">
<value>${proxool.maximumConnectionCount}</value>
</property>
<property name="prototypeCount">
<value>${proxool.prototypeCount}</value>
</property>
<property name="simultaneousBuildThrottle">
<value>${proxool.simultaneousBuildThrottle}</value>
</property>
<property name="maximumActiveTime">
<value>${proxool.maximumActiveTime}</value>
</property>
<!-- 以下两个参数修改了源码才有效 -->
<property name="houseKeepingSleepTime">
<value>${proxool.houseKeepingSleepTime}</value>
</property>
<property name="maximumConnectionLifetime">
<value>${proxool.maximumConnectionLifetime}</value>
</property>
<property name="trace">
<value>${proxool.trace}</value>
</property>
<property name="verbose">
<value>${proxool.verbose}</value>
</property>
<property name="statistics">
<value>${proxool.statistics}</value>
</property>
<property name="statisticsLogLevel">
<value>${proxool.statisticsLogLevel}</value>
</property>
<property name="testBeforeUse">
<value>${proxool.testAfterUse}</value>
</property>
<property name="testAfterUse">
<value>${proxool.testAfterUse}</value>
</property>
<property name="houseKeepingTestSql">
<value>${proxool.houseKeepingTestSql}</value>
</property>
</bean>
<!-- sql监控 -->
<bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource" >
<constructor-arg>
<ref local="proxoolDataSource"/>
</constructor-arg>
</bean>
<!-- 定义Hibernate的一个sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" scope="singleton">
<property name="dataSource">
<!-- <ref bean="proxoolDataSource"/> -->
<ref bean="dataSource"/>
</property>
重启应用后,打开spy.log看看,看里面的日志是不是看起来比较不爽?下面我们安装SQL Profiler来让自已的视线爽一点。
解压sqlprofiler-0.3-bin.zip,把spy.properties拷贝到项目中,覆盖之前的spy.properties,要改的也只是realdriver,可以看到配置文件中有log4j,这就需要我们吧log4j的jar拷贝到应用中。
sqlprofiler.jar并不需要拷贝到应用中,他需要我们来执行:
java -Xmx256m -jar sqlprofiler.jar
spy.properties片断:
log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
log4j.appender.SQLPROFILER_CLIENT.RemoteHost=localhost
log4j.appender.SQLPROFILER_CLIENT.Port=4445
log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true
p6spy 通过SocketAppender 向sqlprofiler发送日志信息,sqlprofiler启动后就开始监听本机的4445端口,在应用中执行数据库操作后就可以在sqlprofiler的界面中看到sql语句的执行结果。
最后一个需要注意的问题就是需要先启动 SQLProfiler,此时状态栏显示P6SPY为未连接状态,然后再启动应用程序或者 Tomcat 等应用服务器,应用运行后SQLProfiler状态栏就会变为连接状态。这是因为 SQLProfiler 默认使用的是 Log4j 的 SocketAppender,所以要先启动。否则,会因你的应用程序或应用服务器中的 Web 应用之类的因连接不到 Socket 的服务器(SQLProfiler 相当于 Socket 的服务器)而发生错误,可以通过 SQL Profiler 控制界面最下面的连接状态就可以知道是否有程序连接上来。
发表评论
-
textview 超链接去掉下划线和设置超链接颜色
2011-12-06 17:15 3791/** * 点击超链接时打开其他博主资料页面 * ... -
java 通过方法名称动态调用方法
2011-10-17 17:44 8155package lee; import java.lan ... -
list如何remove
2011-08-13 12:06 1146在java中对list进行操作很频繁,特别是进行list启遍历 ... -
Map获取键值,Map的几种遍历方法
2011-03-31 23:56 2038Map类提供了一个称为entrySet()的方法,这个方法返回 ... -
java中两个整数相除得到小数点并保留两位小数的方法
2011-03-18 02:08 9282当两个整数相除时,由于小数点以后的数字会被截断,使运算结果为 ... -
ByteArrayOutputStream和ByteArrayInputStream详解
2011-03-17 05:10 3123ByteArrayOutputStream类是在创建它的实例时 ... -
IO输入/输出-从InputStream到ByteArrayInputStream(源码分析)
2011-03-17 05:01 1527转载:http://miaoxiaodong78.blog.1 ... -
IO输入/输出从PipedInputStream/PipedOutputStream谈起(源码分析)
2011-03-17 04:59 1811转载:http://miaoxiaodong78.blog.1 ... -
BufferedInputStream和BufferedOutputStream
2011-03-17 03:02 23391. java.io.BufferedInputStream ... -
JAVA中int转String类型效率比较
2011-03-03 14:58 1927大家都知道JAVA中 int 类型要转化成 String 类型 ... -
String.split() 分隔符不能保存后面的空字符串问题
2011-02-28 16:37 3749String 自带的Split 分割字符串类中不会把分割字符串 ... -
Strut2中Action的Result类型
2011-02-23 02:17 1038type="dispatcher" 只是跳 ... -
include file与jsp:include page的区别
2011-02-22 01:29 1493静态包含: <%include file=&quo ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板(3)
2011-02-21 22:31 1818十、写测试类测试Spring和Hibernate是否结合成功, ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板(2)
2011-02-21 18:06 2059六、定义基本类 1)定义Action基本类-主要定义requ ... -
Struts2.1.6+Spring2.5.6+Hibernate3.3.2+mysql整合+分页模板
2011-02-21 16:10 23571、导入29个JAR包 JAR包名称 ... -
让Hibernate输出SQL语句参数配置
2011-02-20 02:45 1741在J2ee应用中,如果采用Hibernate框架,可以自动建立 ... -
log4j.properties的配置
2011-02-20 02:00 1151一、Log4j简介 Log4j有三个主要的组件:Logg ... -
java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
2011-02-20 00:56 1740在使用Spring的HibernateTemplate查找 ... -
使用 HibernateTemplate 实现分页查询 (HibernateCallback接口)
2011-02-19 01:45 2864HibernateTemplate 只支持 .setMax ...
相关推荐
hibernate执行原生sql语句
虽然在hibernate中有show_sql选项,但是显示出来的语句大多类似 select * from xxx where value=? 但是有时候我们需要得到完整的SQL语句,怎么办呢?使用P6SPY就可以完成这个任务
hibernate中使用sql 而不是hql语句
让hibernate输出sql语句参数配置.doc
模仿Hibernate生产SQL语句,使用Java反射
Hibernate 显示完整sql的配置工具,配置好后在Console会输出不带?的sql语句,方便调试。
hibernate将本地SQL查询结果封装成对象。如进行复杂的统计等本地sql语句查询后,直接放到对象里了,而不会再使用Object进行强转
Hibernate在Myeclipse下SQL语句演示,包含有HQL and Criteria语句的编写测试。
NULL 博文链接:https://28680360-qq-com.iteye.com/blog/1673095
spring_Framework+经典SQL语句大全+Hibernate中文API
基于sql语句的分页,效率更高,此jar包包含常用分页格式 使用方法在jboss5的博客中
主要介绍了在Java的Hibernate框架中使用SQL语句的方法,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
NULL 博文链接:https://javatozhang.iteye.com/blog/2045875
上传的资料都是非常经典的,这也是我学习过程中的心得,希望大家能给我指点,也希望大家多上传资料共同学习。千万不要传空文件夹。。。
使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...
hibernate 对于数据库的映射语句 sqlserver以及mysql映射语句都有 调试过能用 尽情下载吧
该方式是原生SQL查询的一种方式,需要个人自己书写SQL语句进行操作,用法比较灵活多变,适合比较复杂的SQL查询.该压缩包是本人对该查询方式的一种总结练习
NULL 博文链接:https://heroxuan.iteye.com/blog/1074163