这个问题是我发的帖子
http://topic.csdn.net/u/20091126/10/3a1be800-8b57-4042-a0ce-5fb582fde515.html
Connection conn = getconn(“jdbc:db2://127.0.0.1:50000/TESTRA”, “TEST”, “123456”);
ResultSet rs = stmt.executeQuery(“select *from TB_ADMIN “);
错误提示:
Java code
Exception in thread “main” com.ibm.db2.jcc.a.bn: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=TEST.TB_ADMIN, DRIVER=3.51.90
分析:
-204
42704
没有定义的对象名
需要查 DB2ADMIN这个schema下,是否有TB_ADMIN这个表。
但是我现在的schema名称都是RA
数据库名称是TESTRA
用户名是TEST
密码123456
使用toad工具查看发现数据库中表是这样的,toad使用上述参数是可以正常连接访问的,
“RA”.”TB_ADMIN”,是schema为打头的,我的JDBC组合中为什么变成了用户名打头呢TEST.TB_ADMIN,?
还需要有什么特殊的设置么?
另一种处理方法
Properties properties = new Properties();
properties.setProperty(“user”,”TEST”);
properties.setProperty(“password”,”198411″);
properties.setProperty(“currentSchema”,”RA”);
Connection con;
Statement stmt;
ResultSet rs;
try {
Class.forName(sDBDriver);
con = DriverManager.getConnection(sConnDataBase, properties);
stmt = con.createStatement();
rs = stmt.executeQuery(“select * from TB_ADMIN”);
while(rs.next()){
System.out.println(“F1=” + rs.getString(1)+” “+rs.getString(2)+
” “+rs.getString(3)+” “+rs.getString(4)+” “+rs.getString(5)+
” “+rs.getString(6)+” “+rs.getString(7));
}
rs.close();
stmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}
}
这样子就可以查出来,需要加入用户的schema
凑合的解决方法
按理说一个用户可以创建多个SCHEMA,我也不知道怎么做了。
只好用一个蠢方法来处理了,把数据库名称和schema还有用户名都建成一样的,
我现在都建成了TEST,成功了,没有别的办法,先凑合用了
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/4396.html