因为工作的关系必须使用DB2,在java中使用jdbc连接需要导入DB2客户端所带的DB2java.zip包才可以正确执行
其中DB2支持JDBC连接4中方式中的Type2与Type4(桥接),他们的区别是Type2的方式需要你配置好DB2客户端
你的程序才会正确找的服务器,Type4就不需要了。
Type2的方式很简单只要你配置好DB2的客户端就一定可以连接的上
使用COM.ibm.db2.jdbc.app.DB2Driver 作为驱动
Type4的方式就有点点不同 下面给出一段简单的测试代码
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;import java.sql.DatabaseMetaData;
public class Test {
public static void main(String[] args) {
Connection conn=null;
try {
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
try {
conn=DriverManager.getConnection("jdbc:db2://localhost:6789/basDB","USERNAME","PASSWORD");
if (conn!=null){
DatabaseMetaData dbmd=conn.getMetaData();
System.out.println(dbmd.getDatabaseProductName());
}
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
然后运行,如果你能看到数据库的名称,那就证明你成功了
这里说明的是端口号6789,并不是指的DB2客户端配置的端口号
因为Net桥接在DB2中是由一个服务监听另一个端口来完成的,这个端口默认是6789
当然DB2的DBA也可以修改
1、关闭服务器上的web服务;
2、停止jdbc侦听进程db2jd,db2jd一般启动的是6789的端口服务,
先用ps -ef | grep db2jd 查看到它的进程号
然后用kill -9 <进程号> 命令停止;
3、在数据库服务器中,进入/usr/lpp/db2_07_01/java12目录,执行./usejdbc2以启用jdbc2;
4、在服务器上,su - <数据库实例用户名>
执行db2jstrt 6789 (这句启动了db2jd进程,6789是默认的服务器侦听jdbc2连接的端口,也可以设置成另外的任意不冲突的端口。)