由于平台测试需要,这两天在windows xp下搭建了db2(db2_9.1.3版本)服务器的环境,通过jdbc方式进行测试。出现了一些问题。
原始代码如下:
Connection conn = null;
PreparedStatement prepStamt = null;
ResultSet rs = null;
try {
Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
conn = DriverManager.getConnection(
"jdbc:db2://172.16.3.189:50000/CBIFDB", "db2admin",
"db2admin");
prepStamt = conn.prepareStatement("select * from tanzs.testtable");
rs = prepStamt.executeQuery();
int i = 0;
while (rs.next()) {
System.out.println("record[" + (++i) + "]:");
System.out.println("acctNo:" + rs.getObject("acctNo")
+ "acctName:" + rs.getObject("acctName"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
if (prepStamt != null) {
prepStamt.close();
}
if (conn != null) {
conn.close();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
1.问题:java.lang.ClassNotFoundException: com.ibm.db2.jdbc.net.DB2Driver
分析:引用的jar包有db2java.jar,db2jcc.jar,db2jcc_license_cisuz.jar,db2jcc_license_cu.jar
网上找到的驱动名称是:com.ibm.db2.jdbc.net.DB2Driver,
其他项目上的驱动名称是:com.ibm.db2.jcc.DB2Driver
解决:改用jcc的驱动名称就能正常建立连接。
note:网上资料显示,有4种与db2服务器建立连接的方式,具体区别可参考以下信息:http://www.sudu.cn/info/html/edu/20070101/283555.html。
备注:建立连接的url格式如下:jdbc:db2://ip:port/dbname,其中ip为db2服务器ip地址,port为连接端口号,一般默认50000,dbname为要操作的数据库名称。
2.问题:com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: ETPDEMO.TESTTABLE
分析:表操作权限不足。参考http://www.yihaomen.com/article/java/86.html的问题分析,再仔细检查发现:
默认是以系统管理员用户登录,所以创建的表也隶属于系统管理员。而程序中建立连接的用户名,密码是其他用户,非系统管理员用户,所以该用户无操作该表的权限。
解决:两种解决方式,
1)在要操作的表前加上所属表模式,
eg:prepStamt = conn.prepareStatement("select * from Administrator.testtable");
2)修改用户名密码为该表隶属的用户:
eg:conn = DriverManager.getConnection("jdbc:db2://172.16.3.189:50000/CBIFDB", "Administrator", "Administrator");
备注:每个数据库都只给当前登录用户分配管理员权限,所以如果新增了用户,或其他已有用户也要操作该数据库,需要先添加相关用户,分配相应权限。
新建用户:在db2的控制中心,右键点击某一数据库,选择"权限"功能,在弹出的对话框中即可新建用户,并分配相应权限。
note:db2的用户与操作系统的用户一一对应,密码即为操作系统用户的密码。
可在操作系统中新建一用户,再在db2的控制中心添加用户,并为其分配相应权限。
分享到:
相关推荐
综上所述,本文件提供了关于TSM自身数据库及DB2数据库在Linux系统环境下从一个地点转移到另一个地点时,实施备份和恢复操作的详细指导,并突出了测试过程中需要注意的关键点,为相关的备份和灾难恢复提供了一套完整...
DB2数据库教学管理系统是一种基于IBM DB2数据库技术构建的教学管理平台,旨在将理论知识转化为实际操作,帮助学生和教师更有效地进行教学管理和信息处理。在这个系统中,SQL语言被广泛应用于数据的创建、修改和删除...
- 在发现DB2数据库出现问题后,第一时间记录下所有相关信息,包括系统日志、报警信息以及当时正在执行的操作等。 - 这些信息对于后续分析问题原因及制定解决方案非常关键。 2. **停用受影响的DB2实例**: - 如果...
DB2数据库批量导insert工具是为了解决在某些DB2客户端中无法便捷地批量生成insert语句以备份数据的问题而设计的。这个工具允许用户高效地导出DB2数据库中的insert语句,使得数据备份过程更为简单且经过了大规模的...
当数据库出现故障或数据丢失时,DB2数据库的还原操作就显得尤为关键。下面,我们将深入探讨DB2数据库还原的相关知识点,包括其基本概念、操作步骤以及注意事项。 ### DB2数据库还原概述 DB2数据库还原是指将数据库...
这样的设计使得在多个地方使用DB2数据库时,代码更加整洁,也易于测试和调试。 总的来说,"DB2数据库帮助类"是为了简化与DB2数据库的交互而创建的一系列辅助方法的集合,它通常会包裹对`IBM.Data.DB2.DLL`的调用,...
【DB2数据库性能调优】 在数据库管理领域,性能优化是一项关键任务,特别是对于像IBM DB2 Universal Database (UDB)这样的大型企业级数据库系统。本文档深入探讨了如何使用Java示例程序PERFORMER来监控和优化DB2 ...
DB2数据库备份与恢复是数据库管理中的核心环节,它确保了数据的安全性和可恢复性。在DB2系统中,有三种主要的备份类型:离线全备份、在线备份和在线增量备份,每种都有其特定的适用场景和操作流程。 **离线全备份**...
### DB2数据库性能测试监控知识点 #### 一、DB2数据库概述 **1.1 DB2架构介绍** - **概要介绍**: - **DB2**:由IBM开发的关系型数据库管理系统,广泛应用于金融、通信等领域。尤其适用于对稳定性和安全性有极高...
DB2数据库连接DEMO是一个专为初学者设计的实践项目,它涵盖了数据库管理系统的基础知识以及如何使用三层架构来实现数据库的增删改查操作。在这个DEMO中,我们将重点讨论DB2数据库系统、三层架构的概念以及如何在实际...
### DB2数据库管理手册知识点详解 #### 一、数据库管理概述 DB2数据库管理系统作为IBM公司的旗舰级数据库产品,在各种企业级应用中扮演着至关重要的角色。为了确保系统的高效稳定运行,DB2数据库的管理至关重要。 ...
### DB2数据库SQL复制过程详解 #### 一、概述 本文档主要介绍DB2数据库的SQL复制过程,包括从创建数据库到配置复制环境的具体步骤。本文档基于DB2 v9.1版本,并在Windows XP环境下进行测试。通过本文档的学习,读者...
《A5M2 DB2工具:连接数据库的高效解决方案》 在信息技术领域,数据库管理是不可或缺的...在日常的数据库管理工作中,无论是开发、测试还是生产环境,都能发挥其应有的作用,使得DB2数据库的管理变得更加轻松和高效。
DB2数据库移植和转换工具是IT领域中一个关键的话题,特别是在企业级系统迁移或升级的过程中。DB2,由IBM开发,是一款广泛使用的的关系型数据库管理系统(RDBMS),支持多种操作系统平台,包括Windows、Linux、Unix和...
在进行DB2的安装、迁移和维护时,确保遵循最佳实践,保持良好的文档记录,并对任何潜在问题进行充分测试,以确保系统的稳定性和数据的安全性。在Windows到Linux的迁移过程中,尤其要注意不同操作系统间的差异,如...
### DB2数据库备份知识点 #### 一、DB2数据库简介 IBM DB2是一种关系型数据库管理系统(RDBMS),广泛应用于各种规模的企业级环境中。它提供了高性能的数据存储、管理和检索功能,支持多种操作系统平台,包括但不...
根据提供的文件信息,我们可以深入探讨《DB2数据库安全性指南》中的关键知识点,这些知识点主要集中在DB2的安全性配置、管理及最佳实践上。本指南适用于DB2版本9.5及更高版本,并覆盖了Linux、UNIX和Windows操作系统...