我需要通过使用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等名称,以便我们了解您的情况。