net.ucanaccess.jdbc.UcanaccessSQLException:找不到列:0

Dra*_*ior 2 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: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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我执行此代码时,它显示"net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: 0"。请帮我!

Gor*_*son 5

您看到这个错误,因为一个JDBC结果的数字索引值从1开始,而不是0。或者,因为他们在Java教程部分的“从行检索列值”说在这里

ResultSet接口声明用于从当前行中检索列值的getter方法(例如,getBoolean和getLong)。您可以使用列的索引号或列的别名或名称来检索值。列索引通常更有效。列从1开始编号

(强调我的。)