我有以下代码:(基本上它是一个Java-DB2Connectivity测试程序)
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestDB22
{
public static void main(String rgs[]) throws IOException, ClassNotFoundException, SQLException
{
Class.forName("COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver");
Connection con = DriverManager.getConnection("jdbc:db2:rajdb","db2admin","db2admin");
System. out .println( "From TestDB22, connection obtained " );
Statement st=con.createStatement();
ResultSet rs = st.executeQuery( "select * from libids" );
while( rs.next())
{
System.out.println(rs . getString(2));
}
}
}我得到以下错误:
从TestDB22获得连接 线程"main“java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(本机方法)中的异常: com.ibm.db2.jcc.t4.ab.a(ab.java:103),com.ibm.db2.jcc.t4.ab.a(ab.java:151),com.ibm.db2.jcc.uw.UWReply.b(UWReply.java:62),地址为com.ibm.db2.jcc.t4.ab.c(ab.java:243)在com.ibm.db2.jcc.t4.ab.c(ab.java:354),com.ibm.db2.jcc.t4.ab.v(ab.java:1139),com.ibm.db2.jcc.t4.db.c(db.java:52),com.ibm.db2.jcc.t4.t.c(t.java:44)com.ibm.db2.jcc.am.km.executeQuery(km.java:612)的com.ibm.db2.jcc.am.km.a(km.java:2866),com.ibm.db2.jcc.am.km.a(km.java:628),TestDB22.java 22.main(TestDB22.java:16)
发布于 2013-10-05 00:26:15
我很想说司机身上有个窃听器。确保你使用的是最新版本。
如果这不起作用,尝试使用PreparedStatement代替(是的,我知道查询没有任何参数,所以请不要反对我:)
Statement st = con.prepareStatement("select * from libids");
ResultSet rs = st.executeQuery();发布于 2013-10-05 03:01:04
你真的是确定你有正确的JDBC驱动程序..。OS390 os390很老了,在2000年被取代了。您认为您应该使用通用类型4驱动程序:com.ibm.db2.jcc.DB2Driver而不是os390特定的驱动程序COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver吗?
https://stackoverflow.com/questions/19192477
复制相似问题