【问题标题】:SQLite JDBS driver error: getarray not implementedSQLite JDBS 驱动程序错误:getarray 未实现
【发布时间】:2017-05-22 21:38:49
【问题描述】:

我正在尝试获取 ResultSet 并将其内容添加到字符串数组中。

Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(String.format("SELECT * FROM %s", TABLE_STUDENTS));

Array resultArrayStudent = resultSetStudent.getArray(1);
String[] studentIds = (String[])resultArrayStudent.getArray();

但是我收到以下错误:

java.sql.SQLException: not implemented by SQLite JDBC driver
    at org.sqlite.jdbc4.JDBC4ResultSet.unused(JDBC4ResultSet.java:333)
    at org.sqlite.jdbc4.JDBC4ResultSet.getArray(JDBC4ResultSet.java:340)
    at models.DataSource.classesTakenByEachStudent(DataSource.java:400)
    at Main.main(Main.java:81)

什么可能导致这个异常被抛出?我正在使用 sqlite jdbc 3.18.0。

【问题讨论】:

  • 你想得到一个字符串ID数组还是数组?
  • .getArray(int) 返回一个 SQL 数组。我想要一个字符串数组,其中字符串是学生标识符。

标签: java sql sqlite jdbc


【解决方案1】:

不,你不能直接得到一个数组,你必须循环抛出你的结果集并获取标识,你可以使用:

ResultSet resultSet = statement.executeQuery(String.format("....", TABLE_STUDENTS));
List<String> list = new ArrayList<>();//create a List
while (resultSet.next()){//loop throw the result set
   list.add(resultSetStudent.getString("id"));//use the name of your col you want to get
}

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2017-11-13
    • 1970-01-01
    • 2016-08-18
    • 2015-10-23
    • 2013-02-03
    • 1970-01-01
    • 2014-07-30
    • 2020-03-08
    相关资源
    最近更新 更多