- 论坛徽章:
- 0
|
最近项目中要使用db2数据库,也是自然就弄了个来试试,开始觉得用hibernate链接各种数据库应该没什么问题。可是一试才发现问题不是想象中的那么简单。
db2的链接分四中类型;下面一段是ibm官方网站的一段介绍:
依照 JDBC 规范,有四种类型的 JDBC 驱动程序体系结构:
Type 1:这类驱动程序将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程序通常依赖本机库,这限制了其可移植性。JDBC-ODBC 桥驱动程序就是 Type 1 驱动程序的最常见的例子。
Type 2:这类驱动程序部分用 JAVA 编程语言编写,部分用本机代码编写。这些驱动程序使用特定于所连接数据源的本机客户端库。同样,由于使用本机代码,所以其可移植性受到限制。
Type 3:这类驱动程序使用纯 JAVA 客户机,并使用独立于数据库的协议与中间件服务器通信,然后中间件服务器将客户机请求传给数据源。
Type 4:这类驱动程序是纯 JAVA,实现针对特定数据源的网络协议。客户机直接连接至数据源。
type2的链接方式(大家应该都能理解,就不多介绍了):
Driver Name:COM.ibm.db2.jdbc.app.DB2Driver
URL Pattern:jdbc:db2:databasename
type3的连接方式:
Driver Name:COM.ibm.db2.jdbc.net.DB2Driver
URL Pattern:jdbc:db2:ServerIP:6789:databasename
type4的连接方式:
Driver Name:com.ibm.db2.jcc.DB2Driver
jdbc:db2://ServerIP:50000/databasename
有了连接方式,接下来就是要找驱动包了。在baidu上一百,才知道驱动也不是那么容易找的。很多人都在发帖问上哪找。在db2的安装文件夹里有一个java目录,拷贝里面的db2jcc.jar ,db2jcc_license_cu.jar 两个jar包到你的运用的lib目录下(针对type4连接,我想大家应该都是用这种方式吧)。
按理来说,到了这一步,一切应该就ok了。
然而,然而,一切的一切并没有这么顺利。运行你的eclipse或者myeclipse,你会发现抛一个异常(坐在家里写这篇文章,都不知道这个异常叫什么名字了,改天补上来),在网上转了一圈,说是ibm jdk的一个bug,必须使用ibm的jdk才能正常使用,没折找了一个ibm的jdk做tomcat的服务器(只要运用服务器的jdk是ibm jdk就行了,运用程序的jdk照用sun的jdk),如此总算天下太平了。
这一番周折,真感叹啊。IBM一个大家伙,非得整自己的一套东西(关键是不好用,好用啥也不能说),真够折腾我们这帮IT民工(没有对名兄弟贬义的意思哦,因为我跟他们站在同一条线上)的。 |
|