日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

DBCP针对不同数据库的validationQuery

發(fā)布時間:2024/4/13 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DBCP针对不同数据库的validationQuery 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=ECBSHIS.DUAL, DRIVER=4.22.29)at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:301)at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)... 69 more Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=ECBSHIS.DUAL, DRIVER=4.22.29at com.ibm.db2.jcc.am.ld.a(ld.java:810)at com.ibm.db2.jcc.am.ld.a(ld.java:66)at com.ibm.db2.jcc.am.ld.a(ld.java:140)at com.ibm.db2.jcc.am.up.c(up.java:2796)at com.ibm.db2.jcc.am.up.d(up.java:2784)at com.ibm.db2.jcc.am.up.a(up.java:2212)at com.ibm.db2.jcc.t4.bb.i(bb.java:148)at com.ibm.db2.jcc.t4.bb.b(bb.java:41)at com.ibm.db2.jcc.t4.p.a(p.java:32)at com.ibm.db2.jcc.t4.vb.i(vb.java:145)at com.ibm.db2.jcc.am.up.lb(up.java:2181)at com.ibm.db2.jcc.am.up.a(up.java:3300)at com.ibm.db2.jcc.am.up.a(up.java:717)at com.ibm.db2.jcc.am.up.executeQuery(up.java:696)at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)at org.apache.commons.dbcp.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:658)at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1558)at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)... 74 more

解決方法:

DBCP針對不同數(shù)據(jù)庫的validationQuery 當(dāng)你使用DBCP連接池時,你可以通過設(shè)置testOnBorrow和testOnReturn屬性測試這個連接是否可用。不幸的是你還需要設(shè)置validationQuery才能起作用。那么問題來了如何設(shè)置validationQuery這個值呢?

什么是validationQuery validationQuery是用來驗(yàn)證數(shù)據(jù)庫連接的查詢語句,這個查詢語句必須是至少返回一條數(shù)據(jù)的SELECT語句。每種數(shù)據(jù)庫都有各自的驗(yàn)證語句,下表中收集了幾種常見數(shù)據(jù)庫的validationQuery。

    • DataBase validationQuery
    • hsqldb select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
    • Oracle select 1 from dual
    • DB2 select 1 from sysibm.sysdummy1
    • MySql select 1
    • Microsoft SqlServer select1
    • postgresql select version()
    • ingres select 1
    • derby values 1
    • H2 select 1
  • 根據(jù)JDBC驅(qū)動獲取validationQuery 如果你想支持多種數(shù)據(jù)庫,你可以根據(jù)JDBC驅(qū)動來獲取validationQuery,這里有個簡單的類,根據(jù)JDBC驅(qū)動名稱來獲取validationQuery

    轉(zhuǎn)載于:https://my.oschina.net/saulc/blog/1785825

    總結(jié)

    以上是生活随笔為你收集整理的DBCP针对不同数据库的validationQuery的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。