Java net.ucanaccess.jdbc.UcanaccessSQLException:未找到列:0
我是UCanAccess的新手Java net.ucanaccess.jdbc.UcanaccessSQLException:未找到列:0,java,jdbc,ucanaccess,Java,Jdbc,Ucanaccess,我是UCanAccess的新手 package checktpsystemdatabase; import java.sql.*; public class CheckTPSystemDatabase { public static void main(String[] args) throws SQLException { try { Connection con = DriverManager.getConnection("jdbc:uc
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”
。请帮帮我 您看到了这个错误,因为JDBC结果集的数字索引值以1开头,而不是0。或者,正如Java教程的“从行中检索列值”部分所说:
ResultSet接口声明用于从当前行检索列值的getter方法(例如getBoolean和getLong)。可以使用列的索引号或列的别名或名称检索值。列索引通常更有效列从1开始编号
(我的重点。)简单
结果集rs以索引1而不是0开始,因此您应该编写rs.getInt(1)或rs.getObject(1)确保产品表有列,执行描述产品表并确定列。是的,产品表有列,我不知道为什么会出现问题!非常感谢戈德·汤普森。现在我使用的是列名而不是索引,它工作得很好