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

时间:2014-10-23 11:28:42

标签: 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);
        }
    }
}

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

2 个答案:

答案 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)