原文:http://tech.e800.com.cn/articles/2009/730/1248921490555_1.html
在DB2的安装和JDBC开发中,会遇到一些常见的问题做个记录以备忘:
1. license
DB2的正版与否取决于license,然而在安装过程中不会有提示。license安装:
db2licm -a [path]/db2ese.lic
如果license不正确,最大的影响是:数据库无法向除本机以外的其他服务器提供服务。这是个致命的问题...谁装DB2是为了自己玩玩呢...当然你也可以自己玩玩,那就必须注意下面一个问题:
2.app与net
JDBC type2与type3是相似的连接方法。一个是本地应用,一个是远程应用。
type2的主要代码:
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver";).newInstance();
Connection c = DriverManager.getConnection("jdbc:db2://[localDBName]", "[user]", "[password]");
Type 2 的 JDBC 驱动程序,它通过 DB2 本地客户机库的帮助建立和 DB2本地数据库或是远程数据库的连接(事先将远程数据库编目到本地)。因此,我们必须在应用系统所在的机器上同时部署 DB2 本地客户机库,这也许是它最大的一个不足之处。
type3的主要代码:
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver";).newInstance();
Connection c = DriverManager.getConnection("jdbc:db2://[serverIP]:[port默认6789]/[DBName]", "[user]", "[password]");
注意,这里的端口号,是远程客户端给我们的端口号,并不是数据库的端口号50000.
Type 3 的 JDBC 驱动程序,它通过与一台已经部署了 DB2 本地客户机库的机器通信来建立和 DB2 远程数据库的连接。
注意,如果没有license,可能会造成远程连接不可用哦。
3.CODEPAGE错误
如果远程连接系统与本地有编码差异,则可能出现代码页问题,提示信息例如:
SQL0332N There is no available conversion for
the source code page "1386" to the target code
page "819". Reason Code "1". SQLSTATE=57017
建库的时候CODESET 指定为GBK
那么该库的CODEPAGE 为1386
而AIX系统下DB2默认的CODEPAGE为819
由于连接的客户端与数据库的CODEPAGE要一致
因此可以首先通过 db2 get db cfg for dbname 得到对应数据库的CODEPAGE
然后通过db2set设置DB2CODEPAGE
重启数据库后生效
例:
db2set db2codepage=819
db2 terminate
附:CODEPAGE代码页列表
Conversion between any of the following codepages is provided.
37 (=x0025) EBCDIC US Einglsh
273 (=x0111) EBCDIC German
277 (=x0115) EBCDIC Danish/Norwegian
278 (=x0116) EBCDIC Finnish/Swedish
280 (=x0118) EBCDIC Italian
284 (=x011C) EBCDIC Spanish
285 (=x011D) EBCDIC UK English
297 (=x0129) EBCDIC French
300 (=x012C) EBCDIC Japanese DBCS
301 (=x012D) Japanese PC DBCS
420 (=x01A4) EBCDIC Arabic
424 (=x01A8) EBCDIC Arabic
437 (=x01B5) PC-ASCII US
500 (=x01F4) EBCDIC International
803 (=x0323) Hebrew Set A
813 (=x032D) ISO8859-7 Greek
819 (=x0333) ISO8859-1 Western European
833 (=x0341) IBM-833: Korean
834 (=x0342) IBM-834: Korean Host DBCS
835 (=x0343) EBCDIC Traditional Chinese DBCS
836 (=x0344) EBCDIC Simplified Chinese SBCS
838 (=x0346) EBCDIC Thai SBCS
850 (=x0352) ISO8859-1 Western European
852 (=x0354) PC-ASCII Eastern European
855 (=x0357) PC-ASCII Cyrillic
856 (=x0358) PC-ASCII Hebrew
857 (=x0359) PC-ASCII Turkish
858 (=x035A) PC-ASCII Western European with Euro
860 (=x035C) PC-ASCII Portuguese
861 (=x035D) PC-ASCII Icelandic
862 (=x035E) PC-ASCII Hebrew
863 (=x035F) PC-ASCII Canadian French
864 (=x0360) PC-ASCII Arabic
865 (=x0361) PC-ASCII Scandinavian
866 (=x0362) PC-ASCII Cyrillic #2
868 (=x0364) PC-ASCII Urdu
869 (=x0365) PC-ASCII Greek
870 (=x0366) EBCDIC Eastern Europe
871 (=x0367) EBCDIC Icelandic
872 (=x0368) PC-ASCII Cyrillic with Euro
874 (=x036A) PC-ASCII Thai SBCS
875 (=x036B) EBCDIC Greek
880 (=x0370) EBCDIC Cyrillic
891 (=x037B) IBM-891: Korean
897 (=x0381) PC-ASCII Japan Data SBCS
903 (=x0387) PC Simplified Chinese SBCS
904 (=x0388) PC Traditional Chinese Data - SBCS
912 (=x0390) ISO8859-2 Eastern European
915 (=x0393) ISO8859-5 Cyrillic
916 (=x0394) ISO8859-8 Hebrew
918 (=x0396) EBCDIC Urdu
920 (=x0398) ISO8859-9 Turkish
921 (=x0399) ISO Baltic
922 (=x039A) ISO Estonian
923 (=x039B) ISO8859-15 Western Europe with euro (Latin 9)
924 (=x039C) EBCDIC Western Europe with euro
927 (=x039F) PC Traditional Chinese DBCS
928 (=x03A0) PC Simplified Chinese DBCS
930 (=x03A2) EBCDIC Japanese Katakana/Kanji mixed
932 (=x03A4) Japanese OS/2
933 (=x03A5) EBCDIC Korean Mixed
935 (=x03A7) EBCDIC Simplified Chinese Mixed
937 (=x03A9) EBCDIC Traditional Chinese Mixed
939 (=x03AB) EBCDIC Japanese Latin/Kanji mixed
941 (=x03AD) Japanese PC DBCS - for open systems
942 (=x03AE) Japanese PC Data Mixed - extended SBCS
943 (=x03AF) Japanese PC Mixed - for open systems
944 (=x03BO) Korean PC data Mixed - extended SBCS
946 (=x03B2) Simplified Chinese PC data Mixed - extended SBCS
947 (=x03B3) PC Traditional Chinese DBCS
948 (=x03B4) PC Traditional Chinese Mixed - extended SBCS
949 (=x03B5) PC Korean Mixed - KS code
950 (=x03B6) PC Traditional Chinese Mixed - big5
951 (=x03B7) PC Korean DBCS - KS code
970 (=x03CA) euc Korean
1004 (=x03EC) PC Data Latin1
1006 (=x03EE) ISO Urdu
1008 (=x03F0) ASCII Arabic 8-bit ISO
1025 (=x0401) EBCDIC Cyrillic
1026 (=x0402) EBCDIC Turkish
1027 (=x0403) EBCDIC Japanese Latin
1040 (=x0410) IBM-1040: Korean
1041 (=x0411) Japanese PC - extended SBCS
1042 (=x0412) PC Simplified Chinese - extended SBCS
1043 (=x0413) PC Traditional Chinese - extended SBCS
1046 (=x0416) PC-ASCII Arabic
1047 (=x0417) IBM-1047: Western European
1051 (=x041B) ASCII roman8 for HP Western European
1088 (=x0440) PC Korean SBCS - KS code
1089 (=x0441) ISO8859-6 Arabic
1097 (=x0449) EBCDIC Farsi
1098 (=x044A) PC-ASCII Farsi
1112 (=x0458) EBCDIC Baltic (Latvian/Lithuanian)
1114 (=x045A) PC Traditional Chinese - big 5 SBCS
1115 (=x045B) PC Simplified Chinese SBCS
1122 (=x0462) EBCDIC Estonian
1123 (=x0463) EBCDIC Ukrainian
1124 (=x0464) UNIX-ASCII Ukrainian
1131 (=x046B) PC-ASCII Belarus
1140 (=x0474) EBCDIC USA, with euro (like 037)
1141 (=x0475) EBCDIC Austria, Germany, with euro (like 273)
1142 (=x0476) EBCDIC Denmark, Norway, with euro (like 277)
1143 (=x0477) EBCDIC Finland, Sweden, with euro (like 278)
1144 (=x0478) EBCDIC Italy, with euro (like 280)
1145 (=x0479) EBCDIC Spain, with euro (like 284)
1146 (=x047A) EBCDIC UK, with euro (like 285)
1147 (=x047B) EBCDIC France, with euro (like 297)
1148 (=x047C) EBCDIC International, with euro (like 500)
1149 (=x047D) EBCDIC Iceland, with euro (like 871)
1200 (=x04B0) Unicode - UCS-2
1208 (=x04B8) Unicode - UTF-8
1250 (=x04E2) Windows - Eastern European
1251 (=x04E3) Windows - Cyrillic
1252 (=x04E4) Windows - Western European
1253 (=x04E5) Windows - Greek
1254 (=x04E6) Windows - Turkish
1255 (=x04E7) Windows - Hebrew
1256 (=x04E8) Windows - Arabic
1257 (=x04E9) Windows - Baltic Rim
1275 (=x04FB) Apple - Western European
1280 (=x0500) Apple - Greek
1281 (=x0501) Apple - Turkish
1282 (=x0502) Apple - Eastern European
1283 (=x0503) Apple - Cyrillic
1284 (=x0504) IBM-504: Eastern European
1285 (=x0505) IBM-505: Eastern European
1363 (=x0553) Windows Korean PC Mixed including 11,172 full hangul
1364 (=x0554) Korean Host Mixed extended including 11,172 full hangul
1380 (=x0564) PC Simplified Chinese DBCS
1381 (=x0565) PC Simplified Chinese Mixed
1383 (=x0567) euc Simplified Chinese Mixed
1386 (=x056A) PC Simplified Chinese Data GBK Mixed
1388 (=x056C) DBCS Host Simplified Chinese Data GBK Mixed
5346 (=x14E2) Windows-Eastern European with Euro (like 1250)
5347 (=x14E3) Windows - Cyrillic with Euro (like 1251)
5348 (=x14E4) Windows-Western European with Euro (like 1252)
5349 (=x14E5) Windows-Windows - Greek with Euro (like 1253)
5350 (=x14E6) Windows - Turkish with Euro (like 1254)
5351 (=x14E7) Windows - Hebrew with Euro (like 1255)
5352 (=x14E8) Windows - Arabic with Euro (like 1256)
5353 (=x14E9) Windows - Baltic Rim with Euro (like 1257)
5354 (=x14EA) 'Windows - Vietnamese with Euro (like 1258)
4.还是编码问题,代码编码
在java代码编译时,也要考虑编译编码与数据库编码是否相配的问题。一般如果代码中不存在汉字的硬编码的话,不会有问题。但如果有硬编码,则需要考虑写
入数据库的信息是否能被正常识别而不会造成乱码。解决方法与上面类似db2 get db cfg for dbname
查看数据库的编码类型。使得java编译编码同其一致。
5.系统用户权限
安装好DB2之后,默认有两个用户可以有DB2的管理权限:administrator
和db2admin。如果用其他的用户登录windows,不做设置是无法对DB2进行配置管理的。也可以通过将db2admin组用户权限赋予其他系统
用户的方式来通过其他用户管理DB2。
6.JDBC驱动
如果是自己安装DB2.在DB2的安装目录下会有db2java.zip、db2jcc.jar、Common.jar、sqlj.zip、
db2fs.jar。这些是IBM送给广大java发烧友最好的东东,千万记得用。不要到别的地方去找,这里的才是最吻合的lib。其中
db2java.zip就是JDBCtype2和type3用的包。可以将他改名为db2java.jar加到我们的工程中去。db2jcc.jar中提
供JDBC Type4支持。Type4驱动程序是仅纯 Java 的 JDBC
驱动程序,它直接连接到数据库服务器。其实现包名为com.ibm.db2.jcc.DB2Driver。
如果开发者不是DB2安装者,应该搞清楚DB2版本后取得相应的JDBC驱动。
分享到:
相关推荐
DB2的JDBC驱动包是连接IBM DB2数据库的关键组件,它允许Java应用程序通过Java Database Connectivity (JDBC) API与DB2数据库进行交互。在Java编程中,JDBC驱动是桥梁,将Java代码与数据库系统连接起来,实现数据的...
5. **db2dbgm.jar**:可能涉及到DB2的调试工具或功能,帮助开发者诊断和解决数据库问题。 6. **db2ext.jar**:扩展库,可能包含了额外的功能或对特定数据库特性的支持。 7. **db2qgjdbc.jar**:与db2qgjava.jar...
DB2的JDBC驱动是IBM公司为连接到DB2数据库而设计的一种Java数据库连接(JDBC)驱动程序。它是Java应用程序与DB2数据库之间通信的关键组件,使得开发人员能够使用Java语言来执行SQL语句、处理结果集以及管理数据库...
DB2 JDBC jar包驱动是Java应用程序与IBM DB2数据库之间通信的重要组件。JDBC(Java Database Connectivity)是Java平台的标准接口,它允许Java程序通过Java API来访问各种类型的数据库,包括DB2。在这个场景中,"DB2...
DB2 JDBC驱动是Java应用程序与IBM DB2数据库交互的关键组件,它实现了Java Database Connectivity (JDBC) API,允许Java开发者在应用程序中执行SQL语句、管理数据库事务以及处理结果集。在本压缩包中,包含了以下三...
总结起来,IBM DB2 JDBC驱动v10.5是Java开发者与DB2数据库交互的高效工具,它提供了全面的数据库访问功能,并且支持跨平台部署。通过合理地使用和配置,可以构建出高效、可靠的Java数据库应用程序。在实际开发中,...
DB2JDBC JAR包是IBM DB2数据库与Java应用程序之间通信的重要组件,它使得Java开发者能够通过Java Database Connectivity (JDBC) API来执行对DB2数据库的各种操作,包括增、删、改、查等基本功能。在Java环境中,JDBC...
DB2 JDBC驱动程序是IBM公司提供的用于连接Java应用程序与DB2数据库的关键组件。JDBC(Java Database Connectivity)是Java编程语言中的一个标准API,它允许Java应用程序通过网络进行数据交互,而DB2 JDBC驱动则是这...
DB2 JDBC Jar包是IBM公司提供的Java数据库连接(JDBC)驱动程序,它允许Java应用程序与DB2数据库进行通信。这个驱动程序是一个重要的组件,因为它实现了Java编程语言和DB2数据库之间的桥梁,使得开发人员可以利用...
2. **db2jcc4.jar**:此驱动适用于Java SE 7及更高版本,它实现了JDBC 4.1和4.2规范,提供了更多新特性和改进,如更好的异常处理和新的时间日期类型支持。如果你的应用环境运行在Java 7或更新的版本上,应该优先考虑...
DB2 JDBC驱动是IBM公司为连接其DB2数据库系统提供的一种Java数据库连接(JDBC)驱动程序。JDBC驱动程序是Java程序员与各种数据库进行交互的桥梁,它允许Java应用程序通过标准的Java API来访问数据库。在本压缩包中,...
DB2 JDBC 通过客户端连接DB2是数据库管理中常见的操作,尤其在Java开发环境中。JDBC(Java Database Connectivity)是Java编程语言与各种数据库交互的标准接口。本篇将深入探讨如何利用DB2 JDBC驱动程序建立从Java...
在"db2_db2driver_for_jdbc_v11.5.tar.gz"中,主要包含的文件可能有JDBC驱动的jar文件,如`jdbc_sqlj`,这个文件可能是DB2 JDBC驱动的核心组件,用于Java程序加载并使用DB2的JDBC驱动。使用这个驱动,开发者可以编写...
DB2数据库JDBC驱动是IBM公司为Java应用程序提供与DB2数据库进行交互的接口,它遵循Java Database Connectivity(JDBC)标准。JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和...
IBM DB2 JDBC驱动通常指的是Type 4驱动,也称为网络协议驱动,因为它完全基于Java,无需安装任何本地库,具备跨平台的特性。 在压缩包中,有两个关键文件: 1. `db2jcc.jar`:这是DB2 JDBC驱动的主要类库,包含了...
DB2 JDBC 应用实例是基于Java Database Connectivity (JDBC) API与IBM的DB2数据库进行交互的一个实际项目。这个实例提供了丰富的学习材料,帮助开发者理解如何利用JDBC技术来设计、实现和优化与DB2数据库连接的应用...
本文将详细讲解如何在Java环境中安装和使用DB2 JDBC驱动,以及展示一个简单的连接和查询示例。 首先,DB2数据库提供了多种JDBC驱动程序以适应不同的连接需求: 1. **APP驱动**(COM.ibm.db2.jdbc.app.DB2Driver)...
在Unix系统上文件名为`db2jcct2`,若使用通用JDBC驱动程序的第二类驱动程序,则安装在`lib`目录下。 - **环境配置**:使用JDBC时,需要在`CLASSPATH`环境变量中设置相应的JDBC驱动程序文件路径。 #### 四、DB2版本8...
- 在使用JDBC连接DB2之前,首先需要确保已经安装了DB2的JDBC驱动,并且在项目中正确配置了驱动的位置。这通常涉及到将DB2的JDBC驱动jar文件添加到项目的类路径中。 2. **获取数据库连接** - 使用`DriverManager....