从JTable的行计算值,并在按下按钮时将其显示在另一行中保存Mysql

时间:2016-02-29 08:10:21

标签: java mysql swing jtable

我需要通过使用MySQL计算行的值来显示JTable行中的结果。当用户单击保存按钮时,Recevied + PCU存储在Balance中。什么是查询?

JTable显示记录;保存表的记录。

Picture of Jtable

JButton btnSave = new JButton("Save");
Image img4= new ImageIcon(this.getClass().getResource("/save.png")).getImage();
btnSave.setIcon(new ImageIcon(img4));
btnSave.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent arg0) {


        try{
            String query="insert into Detail (ID,Date,Received,PCU,CLR,Sole,Sale,Balance) values (?,?,?,?,?,?,?,?)";
            PreparedStatement pst=connection.prepareStatement(query);

            pst.setString(1,textField.getText());
            pst.setString(2,textField_1.getText());
            pst.setString(3,textField_2.getText());
            pst.setString(4,textField_3.getText());
            pst.setString(5,textField_4.getText());
            pst.setString(6,textField_5.getText());
            pst.setString(7,textField_6.getText());
            pst.setInt(8, 2-3 );

            pst.execute();

            JOptionPane.showMessageDialog(null, "Data Saved");
            pst.close();
            //rs.close();

        }catch(Exception e){
            e.printStackTrace();
        }
        refreshTable();
    }

1 个答案:

答案 0 :(得分:0)

  当用户点击保存按钮时,

已收到+ PCU存储在余额中。

将数据存储到表中时进行计算。

首先,Received和PCU不应存储为字符串。它们应该存储在一个int中。

所以你的代码应该是这样的:

int receivedData = Integer.parseInt( textField_?.getText() );
int pcuData = Integer.parseInt( textField_?.getText() );

pst.setInt(?, receivedData);
pst.setInt(?, pcuData);
...
pst.setInt(8, receivedData + pcuData);

此外,使用有意义的变量名称。我不知道textField_1,2,3,4代表什么。使用接收,pcu,clr等名称,以便我们了解您正在采取的措施。