Java SQLite ResultSet.next()上的ArrayIndexOutOfBoundsException
我想从表中得到一个值。但当我在下一行使用Java SQLite ResultSet.next()上的ArrayIndexOutOfBoundsException,java,sqlite,odbc,rhino,Java,Sqlite,Odbc,Rhino,我想从表中得到一个值。但当我在下一行使用Resultset.next()时: if(rs.next()) { return rs.getString("value"); } 我得到一个java.lang.ArrayIndexOutOfBoundsException:19567。谁能告诉我为什么 public String getString(String key, String defaultValue) { Connection con = null; Prepar
Resultset.next()
时:
if(rs.next()) {
return rs.getString("value");
}
我得到一个java.lang.ArrayIndexOutOfBoundsException:19567
。谁能告诉我为什么
public String getString(String key, String defaultValue) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = connect();
ps = con.prepareStatement("SELECT `value` FROM `" + this.table + "` WHERE `name`=? AND `app`=? LIMIT 1");
ps.setString(1, key);
ps.setString(2, "APP NAME");
rs = ps.executeQuery();
if(rs.next()) {
return rs.getString("value");
}
} catch(Exception e) {
e.printStackTrace();
} finally {
if(con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return defaultValue;
}
private Connection connect() {
Connection connection = null;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:.persistence");
Statement stmt = connection.createStatement();
// AppPersistence
stmt.executeUpdate("CREATE TABLE IF NOT EXISTS `app` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `app` VARCHAR(255), `name` VARCHAR(255), `value` TEXT);");
// UserPersistence
stmt.executeUpdate("CREATE TABLE IF NOT EXISTS `user` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `user_id` VARCHAR(255), `name` VARCHAR(255), `value` TEXT);");
// Users
stmt.executeUpdate("CREATE TABLE IF NOT EXISTS users (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `nickname` VARCHAR(255), `age` INT(11), `gender` VARCHAR(255) DEFAULT('Unknown'));");
} catch(Exception e) {
e.printStackTrace();
}
return connection;
}
StackTrace
java.lang.ArrayIndexOutOfBoundsException: 19567
at org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:342)
at org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:300)
at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.<init>(ClassDescriptor.java:67)
at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.getInstance(ClassDescriptor.java:82)
at org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.MethodDescriptor.getInstance(MethodDescriptor.java:120)
at org.mozilla.javascript.net.sf.retrotranslator.runtime.java.lang.reflect._Method.isVarArgs(_Method.java:96)
at org.mozilla.javascript.jdk15.VMBridge_jdk15.isVarArgs(VMBridge_jdk15.java:33)
at org.mozilla.javascript.MemberBox.init(MemberBox.java:44)
at org.mozilla.javascript.MemberBox.<init>(MemberBox.java:32)
at org.mozilla.javascript.JavaMembers.reflect(JavaMembers.java:455)
at org.mozilla.javascript.JavaMembers.<init>(JavaMembers.java:43)
at org.mozilla.javascript.JavaMembers.lookupClass(JavaMembers.java:807)
at org.mozilla.javascript.NativeJavaObject.initMembers(NativeJavaObject.java:54)
at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:44)
at org.mozilla.javascript.NativeJavaObject.<init>(NativeJavaObject.java:34)
at org.mozilla.javascript.WrapFactory.wrapAsJavaObject(WrapFactory.java:115)
at org.mozilla.javascript.WrapFactory.wrap(WrapFactory.java:72)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:236)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1473)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:815)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:109)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:107)
at com.knuddels.apps.core.RhinoApp.call(RhinoApp.java:150)
at de.mca.core.Main.main(Main.java:83)
java.lang.ArrayIndexOutOfBoundsException:19567
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:342)
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.asm.ClassReader.accept(ClassReader.java:300)
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.(ClassDescriptor.java:67)
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.ClassDescriptor.getInstance(ClassDescriptor.java:82)
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.impl.MethodDescriptor.getInstance(MethodDescriptor.java:120)
位于org.mozilla.javascript.net.sf.retrotranslator.runtime.java.lang.reflect._Method.isVarArgs(_Method.java:96)
位于org.mozilla.javascript.jdk15.VMBridge_jdk15.isVarArgs(VMBridge_jdk15.java:33)
位于org.mozilla.javascript.MemberBox.init(MemberBox.java:44)
位于org.mozilla.javascript.MemberBox(MemberBox.java:32)
位于org.mozilla.javascript.JavaMembers.reflect(JavaMembers.java:455)
位于org.mozilla.javascript.JavaMembers。(JavaMembers.java:43)
位于org.mozilla.javascript.JavaMembers.lookupClass(JavaMembers.java:807)
位于org.mozilla.javascript.NativeJavaObject.initMembers(NativeJavaObject.java:54)
位于org.mozilla.javascript.NativeJavaObject.(NativeJavaObject.java:44)
位于org.mozilla.javascript.NativeJavaObject.(NativeJavaObject.java:34)
位于org.mozilla.javascript.WrapFactory.wrapAsJavaObject(WrapFactory.java:115)
位于org.mozilla.javascript.WrapFactory.wrap(WrapFactory.java:72)
位于org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:236)
位于org.mozilla.javascript.Interpreter.interpreterloop(Interpreter.java:1473)
位于org.mozilla.javascript.explorer.exploration(explorer.java:815)
在org.mozilla.javascript.transportedFunction.call(transportedFunction.java:109)上
位于org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
位于org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
在org.mozilla.javascript.transportedFunction.call(transportedFunction.java:107)上
访问com.knuddels.apps.core.RhinoApp.call(RhinoApp.java:150)
位于de.mca.core.Main.Main(Main.java:83)
能否在帖子中包含完整的堆栈跟踪?getString
调用不在堆栈跟踪上。看起来堆栈跟踪来自其他地方。确实如此。我从javascript(用Rhino解释)调用getString
!这似乎与Rhino有关,而不是Jdbc问题,也许你应该在你的问题中添加标记“Rhino”,我不会请求错误的数据类型。该表的列是VARCHAR(255)
。