尝试使用jdbc连接sample数据库
public class Db2Test {
public static void main(String[] args) throws Exception {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection("jdbc:db2://localhost:50000/sample", "db2admin", "db2admin");
ResultSet rs = conn.createStatement().executeQuery("select count(*) from STAFF");
rs.next();
int count = rs.getInt(1);
System.out.println(count);
rs.close();
conn.close();
}
}
出现如下错误:
Exception in thread "main" com.ibm.db2.jcc.am.io: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=DB2ADMIN.STAFF, DRIVER=3.57.82
at com.ibm.db2.jcc.am.bd.a(bd.java:676)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.km.c(km.java:2506)
at com.ibm.db2.jcc.am.km.d(km.java:2483)
at com.ibm.db2.jcc.am.km.a(km.java:1963)
at com.ibm.db2.jcc.t4.db.g(db.java:139)
at com.ibm.db2.jcc.t4.db.a(db.java:39)
at com.ibm.db2.jcc.t4.t.a(t.java:32)
at com.ibm.db2.jcc.t4.sb.h(sb.java:135)
at com.ibm.db2.jcc.am.km.eb(km.java:1934)
at com.ibm.db2.jcc.am.km.a(km.java:2863)
at com.ibm.db2.jcc.am.km.a(km.java:628)
at com.ibm.db2.jcc.am.km.executeQuery(km.java:612)
at hello.Db2Test.main(Db2Test.java:11)
将jdbc url改成"jdbc:db2://localhost:50000/sample:retrieveMessagesFromServerOnGetMessage=true;"
这时会提示比较详细的错误信息:
Exception in thread "main" com.ibm.db2.jcc.am.io: "DB2ADMIN.STAFF" is an undefined name..
我们启动db2数据库然后对数据库进行各种操作。比如建sample数据库,默认的schema难道不db2admin吗???不是的,通过以下sql查看当前的schema
原来是开机用户名。。。于是在jdbc连接中使用开机用户名和密码,这次就连接成功了。
如果非要想使用db2admin用户怎么办?那么就显示的指定schema
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection("jdbc:db2://localhost:50000/sample:retrieveMessagesFromServerOnGetMessage=true;", "db2admin", "db2admin");
ResultSet rs = conn.createStatement().executeQuery("select count(*) from \"CYPER.YIN\".staff");
rs.next();
或者这样
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection("jdbc:db2://localhost:50000/sample:retrieveMessagesFromServerOnGetMessage=true;currentSchema=CYPER.YIN;", "db2admin", "db2admin");
ResultSet rs = conn.createStatement().executeQuery("select count(*) from staff");
按理说,schema是不区分大小写的。可能是我的用户名中有点号的原因。必须大写才可以。
可以在建表前切换到其它的schema
使用命令set current schema <schema_name>
(如果schema不存在也可以,会隐式的创建)
然后这个表的schema就不再是开机用户了。
可以使用select * from foo.test1来访问创建的新表。
难用!
- 大小: 3.7 KB
- 大小: 2.9 KB
分享到:
相关推荐
JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包
JDBC连接DB2数据库详解 — IT技术
包括JDBC用来连接db2的db2jcc_license_cu.jar,db2jcc4.jar
压缩包中有 db2jcc.jar、db2jcc_license_cu.jar 两个 jar 包。用于连接db2数据库的驱动
关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验给大家写一篇...
JDBC封装类 连接数据库,连接的内容 保存在.properties 文件中 使用myeclise 导入即可
连接DB2包,DB2与JAVA连接驱动,JDBC驱动,里面有三个包,和方法
这个是购买的IBM正版DB2数据库中的驱动包,无限制连接,希望能对大家有帮助,其中包括: db2jcc.jar db2jcc_license_cu
NULL 博文链接:https://zscomehuyue.iteye.com/blog/651951
JDBC连接各种数据库大全 JDBC连接DB2 JDBC连接Microsoft SQLServer(microsoft) JDBC连接Sybase JDBC连接MySQL JDBC连接PostgreSQL JDBC连接Oracle JDBC连接ODBC
关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验给大家写一篇...
DB2数据驱动jar包,用于java jdbc连接DB2数据库
java连接DB2jdbc所有驱动
关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验给大家写一篇...
java 连接 DB2 jdbc 所有 驱动 java 连接 DB2 jdbc 所有 驱动 在DB2的java目录下的所有驱动
经常有人问我java对DB2数据库的连接很麻烦,特别是连接字符串和连接驱动,现在我自己写了个jdbc对DB2的操作(含jar包在里面),非常全,大家下了之后就可以直接拷贝到你项目中应用了
db2jcc_license_cu jdbc连接数据所用jar包 JDBC连接db2驱动包,包含db2jcc_license_cu.jar
使用Java的jdbc连接DB2数据库,包含ipv4、ipv6连接方式及各个系统参数查询。代码可运行。