当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 通过JDBC连接DB2数据库技巧

MSSQL
金额阿拉伯数字转换为中文的自定义函数
关于SQL SERVER建立索引需要注意的问题
怎样获得SQL Server的优化性能?
收集SQL Server统计信息
不通过dsn访问sql server
简化SQL语句一例
数据库的数据挖掘概述(一)
数据库的数据挖掘概述(二)
谈数据库中模糊数据的输入与判别
ms sql删除重复的记录
SQL语句性能调整原则
通过HTTP访问SQL Server 2000数据库
使用SQL Server 将现有代码作为Web 服务提供
自定义用于ASP Web站点的SQL 7.0数据库(1)
自定义用于ASP Web站点的SQL 7.0数据库(2)
数据库查询结果的动态排序(1)
数据库查询结果的动态排序(2)
数据库查询结果的动态排序(3)
数据库查询结果的动态排序(4)
数据库查询结果的动态排序(5)

MSSQL 中的 通过JDBC连接DB2数据库技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 76 ::
收藏到网摘: n/a

关于DB2数据库的JDBC连接文章有很多,比较出名的有诸如“JDBC数据库连接大全”和“JSP的DB2连接数据库”,虽然都是很详细的资料,也都说解决了前人没有解决的问题,但还是有许多纰漏。我就这两天的经验给大家写一篇关于JDBC连接数据库的文章,以解决一部分人的疑问。

第一、JDBC是JDK的一部分(至少在Java Tiger Development Kits中是这样),使用JDBC直接在程序文件中写import Java.sql.*;即可使用了。

第二、连接字符串的格式。本地连接的连接字符串格式为jdbc:product_name: database_name,远程连接的格式为jdbc:product_name://host_name/port_ number:database_name。即如果我的数据库名字为rdb,则本地连接字符串为jdbc:db2:rdb(当然rdb一定是处于DB2的默认实例之中的),而远程连接字符串为jdbc:db2://192.168.1.10/50000:rdb(这里192.168.1.10为数据库所在服务器IP地址,而50000为DB2连接服务的端口号)。

第三、安装DB2数据库提供的为JDBC准备的类库(在.NET中叫Provider,在Java中怎么叫还没研究过)。查找IBM DB2 UDB的安装目录或者Java Tiger的JDK目录你会找到db2Java.zip,把它先做一个副本以后就它最有用了。现在我们开始讨论数据库连接的程序代码。

应用程序连接DB2数据库:

先将db2Java.zip解压缩,把COM目录转移到代码的当前目录,然后我们开始注册这个Provider的实例,代码为:

Class.forName(“COM.ibm.db2.jdbc.app.DB2Driver”).newInstance();

Class.forName(“COM.ibm.db2.jdbc.net.DB2Driver”).newInstance():

这两句任选其一,作用稍有不同,前者是具有DB2客户端的Provider实例,后者是无DB2客户端的Provider实例。

此后再写Connection con=DriverManager.getConnection();即可得到数据库连接的实例。

JSP中连接DB2数据库:

这里以Tomcat作为Servlet容器,如果想在Tomcat中使用DB2 Provider必须把db2java.zip更名成db2Java.jar然后复制到tomcat主目录下common\lib目录下,重新启动Tomcat这样就完成了Provider的注册。然后注册Provider实例的代码与上面等同。还有文章写到另一种注册Provider实例的方法:

DriverManager.registerDriver(new COM.ibm.db2.jdbc.app.DB2Driver());

DriverManager.registerDriver(new COM.ibm.db2.jdbc.net.DB2Driver());

数据库连接实例化方法同上。

深入探讨:

我本人不是很了解Tomcat的运行机制以及原理,不过通过测试发现直接从JSP页面连接DB2数据库会非常的慢。经过实践发现,最好的方法就是在Servlet中使用数据库连接代码,然后把数据库连接返回给JSP页面,十分方便,也便于集中处理代码问题。而且DB2的数据库连接中总会出现DB2服务器自己突然Down掉或者出现连接越发缓慢,这是DB2的实例及数据库参数配置不妥而引起的,我将会再另外的文章中详述,希望能帮助大家。