你的位置:首页 > 数据库

[数据库]db2 jdbc连接字符串中 指定currentSchema


场景:连接DB2数据库的,jdbc的连接字符串中没有给当前的数据源用户指定默认的schema,而当前的数据源用户下可能有多个schema,则会使用数据源用户默认的schema.

例如:admin用户的默认shema是admin,但是我们需要连接的schema是db2inst1,这时候,使用sql操作数据库的时候,会报42704的错.

解决方案如下:为当前的连接执行默认的schema是db2inst1:

<Resource auth="Container" driverClassName="com.ibm.db2.jcc.DB2Driver"    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"    maxActive="20" maxIdel="10" maxWait="1000" name="jdbc/ZYBIDB" password="db2admin"    type="javax.sql.DataSource" url="jdbc:db2://10.27.70.33:60000/dbtest:currentSchema=db2inst1;"    username="db2admin" />

特别注意:见上面的红字,currentSchema是区分大小写的,后面的分号也是必须的!

 

当然,若果你只有查询操作,没有其他的增加\删除\修改之类的操作,那么,也不需要上面的指定默认的currentSchema,可以麻烦一点的,直接在自己的sql语句中增加自己的currentSchema指定,

就可以解决不能找不到对应的schema的问题了,具体的见下:

select count(1) as count from db2inst1.table_name