mysql中的Java jdbc SQLException

时间:2015-04-16 19:40:26

标签: java mysql jdbc

当我单击上一个按钮时,我的文本字段不会填充数据库中的值。它给了我java.sql.SQLException的错误:

  

列' PassengerName'未找到。

我的数据库中存在PassengerName列。有人可以告诉我有什么问题吗?

这是我的代码:

public PaymentForm() {

    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection(url, user, password);
        stt = con.prepareStatement("SELECT * FROM payment");

        rs = stt.executeQuery();

        JOptionPane.showMessageDialog(null, "Connection Successful to Database", "Success", JOptionPane.INFORMATION_MESSAGE);

    }catch(Exception e) {
        JOptionPane.showMessageDialog(null, "Error in connecting to db", "Error", JOptionPane.ERROR_MESSAGE);
    }

    initialize();
    }
}

    JButton btnPrev = new JButton("Previous");
    btnPrev.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

             try {
             if (rs.previous()) {

                    pass.setSelectedItem(rs.getString("PassengerName"));

                    int d = rs.getInt("InvoiceNo");
                    in.setText(String.valueOf(d));
                    int d2 = rs.getInt("CardNo");
                    cn.setText(String.valueOf(d2));
                    double pr = rs.getDouble("Price");
                    tp.setText(String.valueOf(pr));

                    nc.setText(rs.getString("Name"));
             }else {
                 rs.next();
                 JOptionPane.showMessageDialog(null, "No more records");
             }

             }catch(Exception e1) {
                    JOptionPane.showMessageDialog(null, "Error");
                    e1.printStackTrace();

4 个答案:

答案 0 :(得分:1)

您的查询没有包含该列...当您对结果集执行getString时,您将收到错误。

作为旁注:您可以直接使用getString(...)从ResultSet中读取列值,即使基础类型不是字符串

答案 1 :(得分:1)

SELECT PassengerName FROM payment

尝试直接在mysql中执行上面的语句,看看这是否给你结果

答案 2 :(得分:1)

  1. 请勿在'SELECT * FROM payment'等代码中使用带*选择器的查询,只需列出所有需要的列,例如“”SELECT ID,PassengerName FROM payment' ”。
  2. 确保表付款的列名为'PassengerName'

答案 3 :(得分:0)

我必须创建一个更新表方法()。 在方法中,我从表中选择*。 然后我在initialise方法()之后调用该方法。