使用Java在jtable和数据库中添加行

时间:2017-02-25 06:09:34

标签: java database eclipse ucanaccess

我的代码有问题,没有错误日志,所以我看不到问题。 。

Current Problem:
Mainclass() is where the main frame is. . . Clicking ADD will open 
AddBroker() and clicking ADD in AddBroker() will update databse and jtable 
in MainClass(). Database can now be updated but the jtable in MainClass() won't
change until you open it again

这是我的主要课程(其他代码被编辑以关注问题)

public class MainClass extends JFrame {
  JButton button_17 = new JButton("ADD");
  button_17.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {
        //to call class AddBroker()
        AddBroker ab = new AddBroker();
        ab.setVisible(true);

        }
    });}

然后这是AddBroker()的类。 。

public class AddBroker extends JFrame {
  JButton btnAdd = new JButton("ADD");
  final Object[] addBrokerrow = new Object[3];
  btnAdd.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) { 

            ButtonCon bcd = new ButtonCon();
            DriverTableCon dtcd = new DriverTableCon(); //this is just jtable
            MainClass mcd = new MainClass();
            String a = brokerBroker.getText();
            String b = addBroker.getText();
            String c = tinBroker.getText();

            addBrokerrow[0] = a;
            addBrokerrow[1] = b;
            addBrokerrow[2] = c;

            dtcd.modelBroker.addRow(addBrokerrow);
            bcd.addBrokerCon(a,b,c);
        }
    });}

ButtonCon()是添加数据的地方

public class ButtonCon {
 Connection con;
 Statement st;
 ResultSet rs;
 StringBuffer results;
 String url = "jdbc:ucanaccess://C://DATABASE//NTD.accdb";
 public void addBrokerCon(String broker, String add, String tin) {
    try {
        con = DriverManager.getConnection(url);

        String sql = "INSERT INTO brokerT (Broker, Address, Tin_No) VALUES     (?,?,?)";

        ps = con.prepareStatement(sql);

        ps.setString(1, broker);
        ps.setString(2, add);
        ps.setString(3, tin);

        ps.executeUpdate();
        ps.close();
        con.close();

    }

    catch (Exception e) {
            System.out.print(e.toString());
    }
} }

没有错误,所以我不知道这里有什么问题。任何输入将不胜感激:)

所以这已经过了一个星期,我尝试解决问题,我做的是添加一个“刷新”按钮,再次加载表格。

1 个答案:

答案 0 :(得分:0)

您在ps.executeUpdate();ps.setString(3, tin);之间的ps.close();模糊不清。

并使用st删除所有内容,但这不是必需的。