找不到java.sql.sqlexception列

时间:2014-02-06 07:42:24

标签: java mysql sql jdbc

我试图在事务表中找到tr_id(主键)的最大值。
这是表格和它的布局。
enter image description here


enter image description here


这是我的电话。

             try {
                ResultSet rs = db.getData("SELECT MAX(tr_id) FROM transaction");
                ResultSetMetaData meta = rs.getMetaData();
                for (int index = 1; index <= meta.getColumnCount(); index++) {
                    System.out.println("Column " + index + " is named " +    meta.getColumnName(index));
                }
                if (rs.first()) {
                    int tr_id = rs.getInt("tr_id");
               }


我正在使用JDBC连接。当我运行此线时,我收到此错误。

        Column 1 is named MAX(tr_id)
        java.sql.SQLException: Column 'tr_id' not found.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:955)
    at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2570)
    at Controler.InvoiceFinalising.saveInvoice(InvoiceFinalising.java:57)
  etc..


问题是当我搜索“tr_id”列名称转到Max(tr_id)时

1 个答案:

答案 0 :(得分:4)

这是因为sql查询中的列名是max(tr_id)。你可以把它写成

ResultSet rs = db.getData("SELECT MAX(tr_id) as tr_id FROM transaction");

现在你将能够得到它。