之前一直使用mysql oracle 比较多,感觉很顺利使用的,直到前几天使用了DB2,对这个数据库也不了解,网上百度了一下,一番填写,发现报了一个错
cannot create poolableconnectionfactory(DB2 sql error:sqlcode=-204,sqlstate=42704,sqlerrmc=crams_sh.dual,driver=3.66.46)
百度了一番,检查了jar包版本及位置、URL连接、用户名、密码各种配置,包括和网上的别人成功的JDBC Connection Configuration里的配置,尤其是Validation Query的值也一样,为啥别人成功,我还是会报错,真是心里十分的难受,难受到是我的驱动版本不对,各种版本一顿试,还是不行,难受加一万。
后来突然醒悟,记得之前使用mysql
Oracle:select 1 from dual
MySQL:select 1
网上有好多博主连接DB2的时候也是写的select 1 from dual,蒙蔽了我,感觉这个参数可能没啥用,然后TMD这个参数太重要,写不对,直接没法连接数据库,为啥他们成功了,后来询问了db2比较熟悉的人,人家说DB2应该是
DB2:select 1 from sysibm.sysdummy1
司马当成活马。MD果然行了 不报错可以正常做jdbc请求了,
对JDBC Connection Configuration里的配置Validation Query的值总结如下:
hsqldb:select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
Oracle:select 1 from dual
DB2:select 1 from sysibm.sysdummy1
MySQL:select 1
Microsoft SQL Server (MS JDBC driver):select 1
PostgreSQL:select 1
Ingres:select 1
Derby:values 1
H2:select 1
Firebird:select 1 from rdb$database