[英]Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
[英]Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException while executing query in DB2
我有以下代码:(基本上是JAVA-DB2 Connectivity测试程序)
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,获得连接
com.ibm.db2处java.lang.System.arraycopy(native Method)处的线程“ main”中的java.lang.ArrayIndexOutOfBoundsException com.ibm.db2处com.ibm.db2.jcc.t4.ab.a(ab.java:103)处的异常com.ibm.db2.jcc.uw.UWReply.b(UWReply.java:62)上的com.ibm.db2.jcc.t4.ab.c的.jcc.t4.ab.a(ab.java:151) (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.tc(t.java:44)处com.ibm.db2.jcc.t4的com.ibm.db2.jcc.t4.db.c(db.java:52)。 com.ibm.db2.jcc.am.km.km.gb(km.java:1985)的sb.i(sb.java:147)com.ibm.db2.jcc.am.km.a(km.java: 2866)在com.ibm.db2.jcc.am.km.a(km.java:628)在com.ibm.db2.jcc.am.km.executeQuery(km.java:612)在TestDB22.main(TestDB22 .java:16)
我很想说驱动程序中有错误。 确保您使用的是最新版本。
如果那不起作用,请尝试使用PreparedStatement
代替(是的,我知道查询没有任何参数,所以请没人反对我:)
Statement st = con.prepareStatement("select * from libids");
ResultSet rs = st.executeQuery();
您真的确定您拥有正确的JDBC驱动程序吗?... OS390 os390相当老,在2000年左右被替换。 您是否认为您应该使用通用4型驱动程序: com.ibm.db2.jcc.DB2Driver
而不是os390特定的驱动程序COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.