我需要通过使用MySQL计算行的值来在JTable的行中显示结果。当用户单击“保存”按钮时,“已收取+ PCU”存储在“天平”中。查询内容是什么?

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();
    }

最佳答案

当用户单击“保存”按钮时,“已收取+ 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代表什么。使用诸如received,pcu,clr等名称,以便我们了解您的情况。

07-24 09:20