DB2与MyEclipse的连接配置

依照 JDBC 规范,有四种类型的 JDBC 驱动程式体系结构:

 

Type 1:这类驱动程式将 JDBC API 作为到另一个数据访问 API 的映射来实现,如开放式数据库连通性(Open Database Connectivity,ODBC)。这类驱动程式通常依赖本机库,这限制了其可移植性。JDBC-ODBC 桥驱动程式就是 Type 1 驱动程式的最常见的例子。

 

Type 2:这类驱动程式部分用 JAVA 编程语言编写,部分用本机代码编写。这些驱动程式使用特定于所连接数据源的本机客户端库。同样,由于使用本机代码,所以其可移植性受到限制。

 

Type 3:这类驱动程式使用纯 JAVA 客户机,并使用独立于数据库的协议和中间件服务器通信,然后中间件服务器将客户机请求传给数据源。

 

Type 4:这类驱动程式是纯 JAVA,实现针对特定数据源的网络协议。客户机直接连接至数据源。


对于DB2 UDB V7.2来说,他不支持 Type 1 和 Type 4 的驱动程式,不过提供了分别支持 Type 2 和 Type 3 的驱动程式。

 

安装DB2后,在目录IBM/SQLLIB/java中包含了相应的驱动程序。可以分为两类:db2java.zip和db2jcc.jar。

 

db2jcc.jar文件中包含一个com.ibm.db2.jcc.DB2Driver驱动程序。db2java.zip包含一个COM.ibm.db2.jdbc.app.DB2Driver、COM.ibm.db2.jdbc.app.DB2StoredProcDriver驱动程序。

 

COM.ibm.db2.jdbc.app.DB2Driver 这是一种 Type 2 的 JDBC 驱动程式,他通过 DB2 本地客户机库的帮助建立和 DB2本地数据库或是远程数据库的连接(事先将远程数据库编目到本地)。因此,我们必须在应用系统所在的机器上同时部署 DB2 本地客户机库,这也许是他最大的一个不足之处。

使用格式如下:

Driver Name:COM.ibm.db2.jdbc.app.DB2Driver

URL Pattern:jdbc:db2:databasename

databasename: 需要访问的数据库名 

 

有人说在db2java.zip中包含一个COM.ibm.db2.jdbc.net.DB2Driver 驱动程序。在DB2 V9.5中并没有发现。使用也会报错。

 

除了 COM.ibm.db2.jdbc.app.DB2Driver 之外,DB2 UDB V8.1 还提供了另外一种 Type 2 的驱动程式,随产品安装由 db2jcc.jar 提供。其实现包名是 com.ibm.db2.jcc.DB2Driver,在DB2 UDB V8.1 最初的实现中,此驱动程式只用于使用 Type 4 驱动程式体系结构和 DB2 服务器进行直接的 JAVA 连接,这类驱动程式由于不必另外部署 DB2 本地客户机库及性能相对较好而收到研发人员的欢迎。自从 DB2 UDB V8.1.2(安装了 FixPack 2)之后,研发人员还能在 Type 2 体系结构中使用该驱动程式,以提高本地应用程式的性能。
这里,两种驱动程式具有相同的实现类名称,有两种不同的方法能区分 DB2 系统在内部最终会实例化哪个驱动程式:

 

使用不同的 URL Pattern 来区分两种不同的驱动程式
Type 2 Driver URL Pattern:jdbc:db2:databasename


这当中 databasename 是需要访问的数据库名
Type 4 Driver URL Pattern:jdbc:db2://ServerIP:50000/databasename


这当中 ServerIP 是需要访问的数据库所在机器IP地址,databasename 是需要访问的数据库名,DB2 服务器会在默认端口 50000 上进行侦听。

 

在MyEclipse Database Explorer中配置时使用Type 2 Driver URL Pattern:jdbc:db2:databasename 可以连接到数据库,也可以做Hibernate Revenge。但是在SSH的配置文件中(如下),可能会出错。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"></property> <property name="url" value="jdbc:db2:test"></property> <property name="username" value="db2admin"></property> <property name="password" value="123456"></property> </bean>

出错信息:

11:04:25,906 INFO  [STDOUT] com.ibm.db2.jcc.b.SqlException: [jcc][10389][12245][3.50.152] 装入本机库 db2jcct2, java.lang.UnsatisfiedLinkError: no db2jcct2 in java.library.path 时产生故障: ERRORCODE=-4472, SQLSTATE=null

 

将数据库连接改为:jdbc:db2://localhost:50000/test即可。

 

大功告成。

 

 

 

你可能感兴趣的:(数据库,jdbc,MyEclipse,db2,服务器,database)