【发布时间】:2023-03-20 12:13:01
【问题描述】:
我正在尝试使用 java 从 MS Access 表中返回一列分数。这是桌子
我按照 java 文档中的指南进行操作。这是结果代码
public class DatabaseConnector {
public static void main(String[] args){
Connection connection=null;
Statement statement =null;
ResultSet resultSet = null;
//Loads JDBC DRIVER
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
}catch (ClassNotFoundException cnfex){
System.out.println("There was a problem loading MS Access Driver");
cnfex.printStackTrace();
}
//Loads Database
try{
String scoredb="C:/Users/User/"+"/Documents/Database2.accdb";
String mydburl ="jdbc:ucanaccess://"+scoredb;
connection = DriverManager.getConnection(mydburl);
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT CSC103, CSC103 FROM Scores");
while(resultSet.next()) {
Array z = resultSet.getArray("CSC103");
int[] CSC103 = (int[])z.getArray();
for (int i=0;i<CSC103.length;i++){
System.out.println(i);
}
}
} catch (SQLException sqlex){
sqlex.printStackTrace();
}
finally {
try{
if (null != connection) {
resultSet.close();
statement.close();
connection.close();
}
}catch (SQLException sqlex){
sqlex.printStackTrace();
}
}
我最终得到了错误-
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to [Ljava.lang.Object;
at org.hsqldb.jdbc.JDBCResultSet.getArray(Unknown Source)
at org.hsqldb.jdbc.JDBCResultSet.getArray(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessResultSet.getArray(UcanaccessResultSet.java:184)
at DatabaseConnector.main(DatabaseConnector.java:28)
我在网上查看了这个错误,这有点令人困惑,因为解决方案不适用于数据库。如何修复错误并从列中获取我的值?
【问题讨论】:
-
该列包含一个标量值,而不是一个数组。您无法获取此列的数组。结果集是面向行的。
标签: java sql ms-access jdbc ucanaccess