java.sql.SQLException : Column 'Max(category_id' not found

标签 java exception

这是我的代码。它给了我一个异常错误,说“java.sql.SQLException:未找到列'Max(category_id'”。请帮忙。提前致谢。

在此处输入代码

公共(public)类类别扩展javax.swing.JFrame {

/**
 * Creates new form Category
 */
public Category() {
    initComponents();
    DisplayTable();
    autoID();
}


//Display Table
private void DisplayTable() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/inventory?useTimezone=true&serverTimezone=UTC", "root", "ichigo197328");
        String sql = "SELECT * FROM category";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));
    }
    catch(Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

public void autoID() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/inventory?useTimezone=true&serverTimezone=UTC", "root", "ichigo197328");
        Statement s = conn.createStatement();

        ResultSet rs = s.executeQuery("SELECT Max(category_id) from category");
        rs.next();

        rs.getString("Max(category_id)");

        if(rs.getString("Max(category_id") == null) {
            CategoryIDField.setText("C0001");
        }
        else {
            Long id = Long.parseLong(rs.getString("Max(category_id").substring(2, rs.getString("Max(category_id").length()));
            id++;
            CategoryIDField.setText("C0" + String.format("%03d", id ));
        }
    }
    catch(ClassNotFoundException e) {
        Logger.getLogger(Category.class.getName()).log(Level.SEVERE, null, e);
    }
    catch(SQLException e) {
        Logger.getLogger(Category.class.getName()).log(Level.SEVERE, null, e);
    }
}

最佳答案

该列有一个默认名称,但与函数不同,最简单的选择是更改全部

rs.getString("Max(category_id)");

rs.getString(1);

或者,为查询中的列命名。就像,

ResultSet rs = s.executeQuery("SELECT Max(category_id) AS FRED from category");

然后使用

rs.getString("FRED");
例如。最后,如果列属于这些类型,您应该使用 getInt 或 getLong (我怀疑是因为您正在使用 MAX)。

关于java.sql.SQLException : Column 'Max(category_id' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187105/

相关文章:

java - Cygwin 运行的 java 版本与 windows powershell 不同

java - Hibernate - 有选择地打印日志中的查询

java - 什么是 CharsetDecoder.decode(ByteBuffer, CharBuffer, endOfInput)

python - 扭曲:失败与错误

javascript - element.valueAsDate = xxx - 不再工作......(javascript)

java - java中如何将数组作为参数?

java - 如何为不同的标签声明几个具有相同名称的样式属性?

asp.net-mvc - ASP.Net MVC4 HandleError 未渲染指定 View

java - 空指针异常问题

c# - 如何简化 try-catch 的 return 语句