如何从带有分隔符的一个文本字段中获取多个值,并将每个值保存到数据库

时间:2015-04-01 10:21:49

标签: java

实际上我有10到30个假人从txtCC获得值,但我只使用了3个假人,例如下面...

那么如何在不使用虚拟数据的情况下获取每个值并将其直接保存到我的数据库中?这是一个很大的问题因为我的代码太大而无法使用那些假人进行编译..

感谢任何帮助..

private void bSaveActionPerformed(java.awt.event.ActionEvent evt)
{                                      
    // Save to database

    String cc = txtCC.getText();
    String delimiter = ",";
    String[] temp;
    temp = cc.split(delimiter);
    for(int i = 0; i < temp.length; i++)

    if(i==0) {
        txtC1.setText(temp[0]);
        txtC2.setText("0");
        txtC3.setText("0"); }
    else if (i==1) { 
        txtC1.setText(temp[0]); 
        txtC2.setText(temp[1]);
        txtC3.setText("0"); }
    else if (i==2) { 
        txtC1.setText(temp[0]); 
        txtC2.setText(temp[1]); 
        txtC3.setText(temp[2]); }

    try {
        String cc1 = txtC1.getText(); int CC1 = Integer.parseInt(cc1);
        String cc2 = txtC2.getText(); int CC2 = Integer.parseInt(cc2);
        String cc3 = txtC3.getText(); int CC3 = Integer.parseInt(cc3);

        int opt = JOptionPane.showConfirmDialog(null,"Are you sure you want to save this record? ");
        if (opt == 0){
            if(!txtC1.getText().equals("0")) {
                stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                String sql = "Select * from tbl_liqinfo";
                rs = stmt.executeQuery(sql);
                rs.next();
                rs.moveToInsertRow();
                rs.updateInt("CC", CC1);
                rs.insertRow();
                rs.close();
            }

            if(!txtC2.getText().equals("0")) {
                stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                String sql = "Select * from tbl_liqinfo";
                rs = stmt.executeQuery(sql);
                rs.next();
                rs.moveToInsertRow();
                rs.updateInt("CC", CC2);
                rs.insertRow();
                rs.close();
            }

            if(!txtC3.getText().equals("0")) {
                stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                String sql = "Select * from tbl_liqinfo";
                rs = stmt.executeQuery(sql);
                rs.next();
                rs.moveToInsertRow();
                rs.updateInt("CC", CC3);
                rs.insertRow();
                rs.close();
            }

        }
    }
    catch (SQLException err){
        JOptionPane.showMessageDialog(FrmEmpLiquidation.this, err.getMessage());
    }
} 

1 个答案:

答案 0 :(得分:0)

不使用假人,而是创建简单的小方法并使用它。这将减少你的代码行。而且也很容易理解。

private void bSaveActionPerformed(java.awt.event.ActionEvent evt){
        //保存到数据库

    String cc = txtCC.getText();
    String delimiter = ",";
    String[] temp;
    temp = cc.split(delimiter);
    for(int i = 0; i < temp.length; i++)
        insertData(temp[i]);

} 


public void insertData(final String data){
            txtC1.setText(data);

        try {
            String cc1 = txtC1.getText(); int CC1 = Integer.parseInt(cc1);

            int opt = JOptionPane.showConfirmDialog(null,"Are you sure you want to save this record? ");
            if (opt == 0){
                if(!txtC1.getText().equals("0")) {
                    stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                    String sql = "Select * from tbl_liqinfo";
                    rs = stmt.executeQuery(sql);
                    rs.next();
                    rs.moveToInsertRow();
                    rs.updateInt("CC", CC1);
                    rs.insertRow();
                    rs.close();
                }

            }
        }
        catch (SQLException err){
            JOptionPane.showMessageDialog(FrmEmpLiquidation.this, err.getMessage());
        }
}