我是UCanAccess的新手
package checktpsystemdatabase;
import java.sql.*;
public class CheckTPSystemDatabase {
public static void main(String[] args) throws SQLException {
try {
Connection con = DriverManager.getConnection("jdbc:ucanaccess://D:/Java/TransactionProcessingSystem/src/transactionprocessingsystem/Resources/TPSystem.accdb");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Product");
while (rs.next()) {
System.out.println(rs.getInt(0) + "\t" + rs.getString(1) + "\t" + rs.getString(2));
}
rs.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}
当我执行此代码时,它显示"net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: 0"
。请帮帮我!
答案 0 :(得分:4)
您正在看到该错误,因为JDBC ResultSet的数字索引值从1开始,而不是0.或者,正如他们在Java Tutorial here的“从行中检索列值”部分所述:< / p>
ResultSet接口声明getter方法(例如,getBoolean和getLong),用于从当前行检索列值。您可以使用列的索引号或列的别名或名称来检索值。列索引通常更有效。 列的编号为1
(强调我的。)
答案 1 :(得分:0)
简单地
ResultSet rs从索引1开始而不是0所以你应该写rs.getInt(1)或rs.getObject(1)