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 

 

posted @ 2016-02-02 09:26  青天流云  阅读(18717)  评论(0编辑  收藏  举报