您当前的位置:首页 > 互联网教程

JAVA JDBC连接DB2数据库问题

发布时间:2025-05-20 05:09:37    发布人:远客网络

JAVA JDBC连接DB2数据库问题

一、JAVA JDBC连接DB2数据库问题

/**了解基础情况**/对于Java程序员而言,DB2提供了两种应用程序编程接口(API):JDBC和 SQLJ。

JDBC驱动程序分为旧的/CLI驱动程序<db2java.zip>和新的通用 JDBC驱动程序(Universal JDBC Driver)<db2jcc.jar>。

JDBC是一个与供应商无关的动态 SQL接口,该接口通过标准化的 Java方法向您的应用程序提供数据访问。

JDBC类似于 DB2 CLI,因为您无须预编译应用程序代码,也无须将软件包绑定到 DB2数据库。

作为一个与供应商无关的标准,JDBC应用程序提供了更多的可移植性—这是当今异构业务基础设施所必需的优点。

在执行 JDBC应用程序期间,驱动程序将针对当前连接的 DB2数据库服务器验证 SQL语句。

访问期间的任何问题都会作为 Java异常与相应的 SQLSTATE和 SQLCODE一起报告给应用程序。

SQLJ是一个用于从 Java应用程序进行数据访问的标准开发模型。

SQLJ API是在 SQL 1999规范中定义的。

新的通用 JDBC驱动程序在一个实现中同时为 JDBC和 SQLJ API提供了支持。

JDBC和 SQLJ可以在同一个应用程序中互操作。

SQLJ提供了独特的使用静态 SQL语句进行开发以及在 DB2包级别控制访问的能力。

JDBC驱动程序体系结构分为四种类型:Type1,Type2,Type3,Type4。

因此 ODBC驱动程序可以与此类 JDBC驱动程序(由 Sun提供)结合起来使用。

IBM不支持 Type 1驱动程序,因此它不是推荐的环境。

驱动程序依靠特定于操作系统的库(共享库)来与 RDBMS通信。

应用程序将装入这种 JDBC驱动程序,而驱动程序将使用共享库来与 DB2服务器通信。

DB2 UDB for Linux, UNIX和 WindowsV8.1提供了两种不同的 Type 2驱动程序:

<1>旧的/CLI JDBC驱动程序在文件db2java.zip中提供。

其实现包名称为COM.ibm.db2.jdbc.app.DB2Driver。

该驱动程序目前已被用于进行 J2EE认证。

其别名“app驱动程序”源自于一种观念及其包名称,

这种观念就是:此驱动程序将通过远程数据库的本地 DB2 UDB客户机执行本地连接。

<2>通用 JDBC驱动程序在文件db2jcc.jar中提供。

其实现包名称为com.ibm.db2.jcc.DB2Driver。

此驱动程序是 DB2 UDB for Linux, UNIX和 Windows V8.1中的新功能。

在最初的实现(V8.1)中,此驱动程序用于使用 Type 4驱动程序体系结构与 DB2服务器进行直接的 Java连接。

在 DB2 V8.1.2中,您可以在 Type 2体系结构中使用此驱动程序。

在 Type 2体系结构中使用此驱动程序的一个主要原因是为了本地应用程序性能和分布式事务支持。

通用 JDBC Type 2驱动程序分别使用com.ibm.db2.jcc.DB2XADataSource和com.ibm.db2.jcc.DB2ConnectionPoolDataSource来支持分布式事务和连接池。注:在将来的版本中不会对旧的/CLI Type 2驱动程序进行增强。

驱动程序是一种纯 Java实现,它必须与 DB2 JDBC Applet服务器(DB2 JDBC Applet Server)通信才能访问 DB2数据。

此类驱动程序旨在使 Java applet能访问 DB2数据源。

常被称作“网络(net)驱动程序”,它是根据其包名COM.ibm.db2.jdbc.net命名的。DB2 V8.1支持网络驱动程序,可以将其用于 JDBC应用程序。

要求db2java.zip驱动程序总是处于与 DB2 Applet服务器相同的维护级别。

如果驱动程序在 applet内使用,这就不是一个问题,因为浏览器会在应用程序执行期间下载相应的db2java.zip文件。

许多客户使用 Type3驱动程序而不是 Type2驱动程序,以避免必需的 DB2客户机安装和必需的DB2 CATALOG DATABASE命令,后者用于创建使用旧的/CLI驱动程序进行 Type 2连接所必需的数据库目录信息。

目前,WebSphere Application Server和其它 J2EE服务器不支持 IBM Type 3驱动程序,因为该驱动程序不支持分布式事务(JTA)。

将来的版本不会对 Type 3驱动程序进行增强。

鼓励使用通用 JDBC Type 4驱动程序来替代 Type 3驱动程序。

驱动程序是仅用于 Java的 JDBC驱动程序,它直接连接到数据库服务器。

DB2 UDB for Linux, UNIX和 Windows V8.1引入了称为“通用 JDBC驱动程序(Universal JDBC driver)”的 Type 4驱动程序。

通用 JDBC驱动程序在文件db2jcc.jar中提供。

其实现包名为com.ibm.db2.jcc.DB2Driver。

请注意,通用 Type 2和通用 Type 4驱动程序具有相同的实现类名称。

有两种方法可以区别 DB2在内部将实例化哪个驱动程序:

使用连接特性来确定连接是否使用共享库(Type2),或者驱动程序是否会启动来自 Java应用程序的直接连接(Type4)。

重要:就 DB2 UDB V8.1.2而言,通用 JDBC驱动程序要求 CLASSPATH中有许可证 JAR文件和db2jcc.jar文件。

Cloudscape Network Server V5.1:db2jcc_license_c.jar

DB2 UDB V8 for Linux, UNIX和 Windows服务器:db2jcc_license_su.jar

DB2 UDB for iSeries and z/OS服务器(与 DB2 Connect和 DB2 Enterprise Server Edition一起提供):db2jcc_license_cisuz.jar****************************************************************驱动程序类型:db2java.zip, db2jcc.jar

注意:假如你使用db2java.zip,且web服务器使用Tomcat的话,请将db2java.zip改名为db2java.jar,最好将zip解压再用jar命令打包,直接改文件类型也行(呵呵,按照jar文件严格意义上来讲这是不符合文法的<少了描述性文件:MANIFEST.MF>,能用就行)

还有一般情况下:就是使用 db2java.zip的话需要安装db2客户端,使用db2jcc.jar是通过网络直接来连接的无需安装db2客户端(假如用在type2上还是要装客户端的)type2:

jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver

jdbc.url=jdbc:db2:dataBaseName

假如你的工具使用的是myeclipse且使用的是tomcat plugin的话,请将db2jdbc.dll拷贝到%JAVA_HOME%/bin下,否则不行地啦

<是不是其他类型的使用db2java.zip驱动也有这个问题呢,不知道,没试过,有空试一下>

jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver

jdbc.url=jdbc:db2:dataBaseName

jdbc.driverClassName=COM.ibm.db2.jdbc.net.DB2Driver

jdbc.url=jdbc:db2://ip:6789/DBNAME

注意:要在数据库上执行 db2jstrt 6789(这句启动了db2jd进程,6789是默认的服务器侦听jdbc2连接的端口,也可以设置成另外的任意不冲突的端口。)

jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver

jdbc.url=jdbc:db2://ip:port/DBNAME

二、文摘数据库优点,请细致解说下!

美国Microsoft公司于1994年推出的微机数据库管理系统。它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。其主要特点如下:

(1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。

(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。

(3)可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。

(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。

(5)能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。

美国InfomixSoftware公司研制的关系型数据库管理系统。Informix有Informix-SE和Informix-Online两种版本。Informix-SE适用于UNIX和WindowsNT平台,是为中小规模的应用而设计的;Informix-Online在UNIX操作系统下运行,可以提供多线程服务器,支持对称多处理器,适用于大型应用。

Informix可以提供面向屏幕的数据输入询问及面向设计的询问语言报告生成器。数据定义包括定义关系、撤销关系、定义索引和重新定义索引等。Informix不仅可以建立数据库,还可以方便地重构数据库,系统的保护措施十分健全,不仅能使数据得到保护而不被权限外的用户存取,且能重新建立丢失了的文件及恢复被破坏了的数据。其文件的大小不受磁盘空间的限制,域的大小和记录的长度均可达2K。采用加下标顺序访问法,Informix与COBOL软件兼容,并支持C语言程序。 Informix可移植性强、兼容性好,在很多微型计算机和小型机上得到应用,尤其适用于中小型企业的人事、仓储及财务管理。

美国Orcale公司研制的一种关系型数据库管理系统,是一个协调服务器和用于支持任务决定型应用程序的开放型RDBMS。它可以支持多种不同的硬件和操作系统平台,从台式机到大型和超级计算机,为各种硬件结构提供高度的可伸缩性,支持对称多处理器、群集多处理器、大规模处理器等,并提供广泛的国际语言支持。 Orcale是一个多用户系统,能自动从批处理或在线环境的系统故障中恢复运行。系统提供了一个完整的软件开发工具Developer2000,包括交互式应用程序生成器、报表打印软件、字处理软件以及集中式数据字典,用户可以利用这些工具生成自己的应用程序。Orcale以二维表的形式表示数据,并提供了SQL(结构式查询语言),可完成数据查询、操作、定义和控制等基本数据库管理功能。Orcale具有很好的可移植性,通过它的通信功能,微型计算机上的程序可以同小型乃至大型计算机上的Orcale,并且能相互传递数据。另外Orcale还具有与C语言的接电子表格、图形处理等软件。 Orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。

IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。

(1)高性能设计,可充分利用WindowsNT的优势。

(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。

(3)强壮的事务处理功能,采用各种方法保证数据的完整性。

(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。

美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。 Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的数据安全性。Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerBuilder为开发工具,在我国大中型系统中具有广泛的应用。

最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro等版本,其功能和性能有了较大的提高。 FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。

三、db2数据库价格

不同版本的价格相差很大,以目前最新的10.x为例,Express C版是免费的,而企业版则按照使用CPU的核数进行收费,以前问过IBM的工作人员,大概是一个内核上就要收费10w美元吧,很贵的。不过IBM的软件不是单独这样卖,通常都跟服务捆绑的,要不同的服务会导致软件的价格差别较大,最好与他们的销售人员咨询一下。