原文: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驱动 ,使用java连接db2数据库需要jdbc驱动。 DB2 jdbc驱动 ,使用java连接db2数据库需要jdbc驱动。
DB2 JDBC 驱动 驱动程序
DB2的JDBC驱动包,网络这个比较难找,我用的时候也找了很久, 这里和大家分享一下
DB2 11.5版本 jdbc db2jcc db2jcc4驱动。包含了所需的所有jar,新版jar命名为db2jcc4
DB2jdbc jar包 java通过jdbc对db2数据库进行操作 java对db2数据库的增删改查
JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包 JDBC连接DB2数据库需要的jar包
DB2数据驱动jar包,用于java jdbc连接DB2数据库
DB2_JDBC驱动
db2 jdbc 驱动 db2 jdbc 驱动
DB2 JDBC驱动程序及其支持的功能简介,db2,jdbc,doc
db2 jdbc jar包 db2jcc4.jar
DB2jdbc-4.23.42.zip 为db2的jdbc,用于 DB2 数据库开发或连接客户端等。
db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 jdbc 驱动db2 ...
用JDBC连接DB2的例子: 用JDBC连接DB2的例子: import java.sql.*; import COM.ibm.db2.jdbc.app.*; public class DB2Test { public static void main(String[] args) { String JDBCDriver = ...
安装完DB2 Server后 "SQLLIB\java"目录中db2jcc4.jar (for JDBC)和sqlj4.zip (for SQLJ)也是用于支持JDBC 4的。但由于缺省CLASSPATH路径中一般设置为db2jcc.jar,而不是db2jcc4.jar,如果要用JDBC4需要设置CLASSPATH...
DB2的JDBC驱动,包括 db2jcc.jar,db2jcc_license_cu.jar,db2jcc4.jar。版本:DB2 v9.7.0.11
db2 jcc jdbc driver,还包括一个license,两个jar文件都要放到classpath才可以使用。
IBM官网下载的最新版DB2 驱动包。内含:db2jcc.jar和db2jcc4.jar
DB2 数据库驱动下载 :DB2 JDBC DRIVER