Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLite ResultSet.next()上的ArrayIndexOutOfBoundsException_Java_Sqlite_Odbc_Rhino - Fatal编程技术网

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)