SHOW_SQL获得HIBERNATE生成的SQL中,update/insert语句中的value被替换成“?”,昨天得本论坛高人指点用p6spy解决了此问题,特将解决之道回馈本论坛,以答谢Quake Wang。 开发环境:tomcat 4.1.24 + oracle 9i 注:p6spy.jar及spy.properties可以从www.p6spy.com下载 1、将p6spy.jar、commons-logging.jar、log4j-1.2.8.jar拷贝到WEB-INF/lib下 2、将spy.properties拷贝到WEB-INF/classes下 3、修改JDBC连接,在HIBERNATE与JDBC驱动之间插入p6spy,方便获得SQL语句 1)由oracle.jdbc.driver.OracleDriver为com.p6spy.engine.spy.P6SpyDriver 2)修改spy.properties样本的第41行,使用ORACLE驱动,封闭缺省的MYSQL驱动: # oracle driver realdriver=oracle.jdbc.driver.OracleDriver 3)修改spy.properties样本的第54行,封闭缺省的MYSQL驱动: # the mysql open source driver # realdriver=org.gjt.mm.mysql.Driver 4)修改spy.properties样本的第168行,将spy.log放到比较好找的位置: logfile = E:/spy.log 重新启动tomcat,E:/SPY.LOG可以看到hibernate生成的带值的SQL。