gpt4 book ai didi

java - 使用 Java JDBC 驱动程序连接到 DB2 源时出现异常

转载 作者:行者123 更新时间:2023-12-01 04:36:55 25 4
gpt4 key购买 nike

我正在尝试使用 java 连接 DB2 数据库,下面是我提供的驱动程序和连接字符串详细信息,

Class.forName("com.ibm.db2.jcc.DB2Driver");

DB2DataSource db2ds = new DB2DataSource();
db2ds.setServerName("servername");
db2ds.setPortNumber(portnumber);
db2ds.setDatabaseName(databasename);
db2ds.setUser(username);
db2ds.setPassword(password);
db2ds.setSecurityMechanism(DB2BaseDataSource.ENCRYPTED_USER_AND_DATA_SECURITY);
db2ds.setDriverType(4);
sourceConnection=db2ds.getConnection();

对于此连接,我添加了以下 jar

1)db2jcc.jar 
2)db2jcc_license_cu.jar

但是我收到以下错误,

com.ibm.db2.jcc.a.SqlException: java.security.InvalidAlgorithmParameterException is caught when initializing EncryptionManager 'Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)'
at com.ibm.db2.jcc.a.x.<init>(x.java:89)
at com.ibm.db2.jcc.b.b.lc(b.java:2353)
at com.ibm.db2.jcc.b.b.A(b.java:1190)
at com.ibm.db2.jcc.b.b.b(b.java:759)
at com.ibm.db2.jcc.b.b.a(b.java:725)
at com.ibm.db2.jcc.b.b.a(b.java:430)
at com.ibm.db2.jcc.b.b.<init>(b.java:374)
at com.ibm.db2.jcc.DB2DataSource.getSimpleConnection(DB2DataSource.java:87)
at com.ibm.db2.jcc.DB2DataSource.getConnection(DB2DataSource.java:65)
at com.ibm.db2.jcc.DB2DataSource.getConnection(DB2DataSource.java:47)
at TestDB2.main(TestDB2.java:73)

我尝试了不同的安全机制,但仍然遇到相同的错误。我尝试过以下安全机制选项,

1) ENCRYPTED_USER_AND_DATA_SECURITY 
2) CLEAR_TEXT_PASSWORD_SECURITY
3) ENCRYPTED_PASSWORD_SECURITY
4) ENCRYPTED_USER_AND_PASSWORD_SECURITY
5)ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY

我使用JDK 1.6.0版本来开发代码

请指导成功连接需要做什么。

提前致谢。

最佳答案

您必须使用SecurityProviderBouncyCaSTLeProvider 对您来说是一个不错的选择。您所要做的就是,作为 getConnection() 方法的第一步,使用以下行:

 Security.addProvider(new BouncyCastleProvider());

关于java - 使用 Java JDBC 驱动程序连接到 DB2 源时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17210196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com