日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
讓Hibernate顯示SQL語句的綁定參數(shù)值

使用Hibernate提供的內(nèi)置屬性true只能輸出類似于下面的SQL語句:

 
 
 
  1. Hibernate:   
  2.  
  3. insert into student(name, sex, age, cardId, classroom_id, id) values (?, ?, ?, ?, ?, ?) 

這樣不利于程序的調(diào)試,為了可以顯示?占位符所代表的具體數(shù)據(jù),需要第三方Jar包,p6spy是一個(gè)該需求的開源實(shí)現(xiàn)。

一、在Java Project項(xiàng)目中使用p6spy:

  1. 到其官方網(wǎng)站下載其Jar包,http://www.p6spy.com/(貌似不能訪問了)靠Google或Baidu搜索一下吧。
  2. 一般Download下來的是zip或jar文件包,將其解壓縮,將里面的p6spy.jar放入構(gòu)建路徑里,將spy.properties文件放入src目 錄下。
  3. 修改兩個(gè)屬性,第一個(gè),realdriver=你使用具體數(shù)據(jù)庫的驅(qū)動(dòng)類(例如MySQL為:com.mysql.jdbc.Driver);第二個(gè),logfile=指定log文件的位置(例如,c:/spy.log)。
  4. 修改Hibernate.cfg.xml配置文件中的 com.p6spy.engine.spy.P6SpyDriver

配置完畢后,執(zhí)行HQL語句后,查看spy.log文件就可以看到?占位符的具體數(shù)據(jù)了:(前面部分是Hibernate的初始化信息,最下面顯示的就是完整的SQL語句)

 
 
 
  1. 1326730516837|-1||debug||com.p6spy.engine.common.P6SpyOptions reloading properties  
  2. 1326730516842|-1||info||Using properties file: D:\WorkSpace\MyEclipse\9\hibernate\list mapping\bin\spy.properties  
  3. 1326730516842|-1||info||No value in environment for: getStackTrace, using: false  
  4. 1326730516842|-1||info||No value in environment for: getAppender, using: com.p6spy.engine.logging.appender.FileLogger  
  5. 1326730516842|-1||info||No value in environment for: getDeregisterDrivers, using: false  
  6. 1326730516842|-1||info||No value in environment for: getUsePrefix, using: false  
  7. 1326730516842|-1||info||No value in environment for: getExecutionThreshold, using: 0  
  8. 1326730516842|-1||info||No value in environment for: getAutoflush, using: true  
  9. 1326730516842|-1||info||No value in environment for: getExclude, using:   
  10. 1326730516842|-1||info||No value in environment for: getExcludecategories, using: info,debug,result,batch  
  11. 1326730516843|-1||info||No value in environment for: getFilter, using: false  
  12. 1326730516843|-1||info||No value in environment for: getInclude, using:   
  13. 1326730516843|-1||info||No value in environment for: getIncludecategories, using:   
  14. 1326730516843|-1||info||No value in environment for: getLogfile, using: spy.log  
  15. 1326730516843|-1||info||No value in environment for: getRealdriver, using: com.mysql.jdbc.Driver  
  16. 1326730516843|-1||info||No value in environment for: getRealdriver2, using:   
  17. 1326730516843|-1||info||No value in environment for: getRealdriver3, using:   
  18. 1326730516843|-1||info||No value in environment for: getAppend, using: true  
  19. 1326730516843|-1||info||No value in environment for: getSpydriver, using: com.p6spy.engine.spy.P6SpyDriver  
  20. 1326730516843|-1||info||No value in environment for: getDateformat, using:   
  21. 1326730516843|-1||info||No value in environment for: getDateformatter, using: null  
  22. 1326730516843|-1||info||No value in environment for: getStringmatcher, using: com.p6spy.engine.common.SubstringMatcher  
  23. 1326730516843|-1||info||No value in environment for: getStringMatcherEngine, using: com.p6spy.engine.common.SubstringMatcher@60e128  
  24. 1326730516843|-1||info||No value in environment for: getStackTraceClass, using:   
  25. 1326730516843|-1||info||No value in environment for: getSQLExpression, using: null  
  26. 1326730516843|-1||info||No value in environment for: getReloadProperties, using: false  
  27. 1326730516843|-1||info||No value in environment for: getReloadPropertiesInterval, using: 60  
  28. 1326730516843|-1||info||No value in environment for: getJNDIContextFactory, using: null  
  29. 1326730516843|-1||info||No value in environment for: getJNDIContextProviderURL, using: null  
  30. 1326730516844|-1||info||No value in environment for: getJNDIContextCustom, using: null  
  31. 1326730516844|-1||info||No value in environment for: getRealDataSource, using: null  
  32. 1326730516844|-1||info||No value in environment for: getRealDataSourceClass, using: null  
  33. 1326730516844|-1||info||No value in environment for: getRealDataSourceProperties, using: null  
  34. 1326730517419|7|0|statement|select max(id) from classroom|select max(id) from classroom  
  35. 1326730517440|0|0|statement|select max(id) from student|select max(id) from student  
  36. 1326730517454|0|0|statement|insert into classroom (grade, number, id) values (?, ?, ?)|insert into classroom (grade, number, id) values ('fourth grade', 1, 1)  
  37. 1326730517456|1|0|statement|insert into student (name, sex, age, cardId, classroom_id, id) values (?, ?, ?, ?, ?, ?)|insert into student (name, sex, age, cardId, classroom_id, id) values ('lisi', 'true', 21, '08053120', 1, 2)  
  38. 1326730517457|0|0|statement|update student set classroom_id=?, index_=? where id=?|update student set classroom_id=1, index_=1 where id=2 
  39. 1326730517458|0|0|commit|| 

二、在Java Web項(xiàng)目中使用p6spy(Tomcat環(huán)境下)

  1. 將p6spy.jar 放入應(yīng)用程序的WEB-INF/lib目錄,將spy.properties放入WEB-INF/classes目錄
  2. 其他與Java Project項(xiàng)目使用方法一樣。
  3. 重啟Tomcat服務(wù)器

可能會(huì)出現(xiàn)的問題:驅(qū)動(dòng)程序加載先后的問題解決

如果spy.log里出現(xiàn)你的程序的數(shù)據(jù)庫驅(qū)動(dòng)名稱 is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties.

請(qǐng)把spy.properties文件里的deregisterdrivers=false改為deregisterdrivers=true,重新運(yùn)行即可。


當(dāng)前標(biāo)題:讓Hibernate顯示SQL語句的綁定參數(shù)值
分享URL:http://www.5511xx.com/article/dpoehse.html