我无法进行进一步的处理,因为我在运行此代码时关闭了ResultSet.我在sqlite数据库表的15行之后添加了值,我希望找到15行的平均值,并且应该存储在ArrayList中.
这是代码: -
try { Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:test.db"); c.setAutoCommit(false); System.out.println("Opened database successfully3"); stmt = c.createStatement(); rs = stmt .executeQuery("SELECT TIME,BID,ASK FROM '" + title + "' ;"); System.out.println("Opened database successfully 20"); while (rs.next()) { i++; System.out.println(i); if (i > 15) { System.out.println("i am in"); Liststocklist = new ArrayList (); String main = rs.getString(1); System.out.println(rs.getString(1)); String s[] = main.split(" ", 2); String date = s[0]; String time = s[1]; stocklist.add(date); stocklist.add(time); stocklist.add(df.format(rs.getFloat("BID"))); stocklist.add(df.format(rs.getFloat("ASK"))); rs1 = stmt .executeQuery("SELECT ASK FROM '" + title + "' ;"); int j = 1; while (rs1.next()) { if (j < i) { System.out.println(rs1.getFloat("ASK")); avg = avg + rs1.getFloat("ASK"); } j++; } rs1.close(); System.out.println("i am out"); avg = avg / 15; changepercent = ((rs.getFloat("ASK") - avg) / avg) * 100; stocklist.add(df.format(changepercent)); stocklist.add("ETE"); stocklist.add("HUN"); stocklist.add("ALU"); stocklist.add("ETE"); stocklist.add("HUN"); stocklist.add("ALU"); stocklist.add("ETE"); stocklist.add("HUN"); hntm.addRow(stocklist); } } rs.close(); stmt.close(); c.close(); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); System.exit(0); }
Simulant.. 9
你不应该重用一个Statement.创建新查询时,需要使用新的Statement对象.替换rs1 = stmt.executeQuery("SELECT ASK FROM '" + title + "' ;");
为rs1=c.createStatement().executeQuery("SELECT ASK FROM '" + title + "' ;");
你不应该重用一个Statement.创建新查询时,需要使用新的Statement对象.替换rs1 = stmt.executeQuery("SELECT ASK FROM '" + title + "' ;");
为rs1=c.createStatement().executeQuery("SELECT ASK FROM '" + title + "' ;");