如何将textfield的值设置为java中的表列

时间:2016-10-19 07:33:22

标签: java mysql

如何使用java代码在数据库中设置方法的值。

mycode的

// for getting value code start here

 public void MethodOutputid(int num1)

          String sql="Select MAX(OUTPUT_ID) from OUTPUT_CONFIGURATION";
          PreparedStatement psmt=conn.prepareStatement(sql);
          rs=psmt.executeQuery();
          while(rs.next())
          {
              num1=rs.getInt(1);
          }
                num1=num1+1;               
                txtoutputid1.setText(""+num1);
             }      

////在这里获得价值

//用于获取outputid的值并将其设置为数据库从这里开始

private boolean AddButton(ActionEvent event) throws IOException {

                String sql = "insert into INPUT_CONFIGURATION (FILE_NAME,OUTPUT_ID)value(?,?)";

                String filename = txtfilename.getText();                    
                int outputnum=0;
                MethodOutputid(outputnum); 
                PreparedStatement ps = conn.prepareStatement(sql);  
                ps.setString(1, filename);                     

                if(Integer.parseInt(txtoutputid1.getText())==outputnum)
                {
                   ps.setInt(2, outputnum); 
                }

                ps.executeUpdate();
               }

//用于获取outputid的值并将其设置为数据库结束

这里我从方法 MethodOutputid(int num1)获取 num1 值,如上所述 我在 MethodOutputid(int num1)方法中将该值设置为名为 txtoutputid1 textfield

现在我想将txtoutputid1(文本字段)的值插入 OUTPUT_ID 列中的表 INPUT_CONFIGURATION

我试过

if(Integer.parseInt(txtoutputid1.getText())==outputnum)
{
      ps.setInt(2, outputnum); 
}

我试过这个,但显示错误没有为参数指定值

我该怎么做才能将该textfield的值(如MethodOutputid(int num1)中提到的txtoutputid1)插入INPUT_CONFIGURATION中的OUTPUT_ID列。

2 个答案:

答案 0 :(得分:0)

您的编码方式不推荐。

关于错误: 您在query.So

中仅指定了两个问号

你必须重新写行

ps.setInt(9, outputnum); //您的查询中没有9列

ps.setInt(2, outputnum);

答案 1 :(得分:0)

您应该将保证值设置为第二个参数。否则,准备好的语句无法编译。根据代码中if语句的结果,此参数可能没有值;

if(Integer.parseInt(txtoutputid1.getText())==outputnum)
{
    ps.setInt(2, outputnum); 
}

这是你的错。设置值应该超出条件。保留默认值或在必要语句的情况下抛出异常并进行比较失败:

if(Integer.parseInt(txtoutputid1.getText()) == outputnum)
{
    throw new RuntimeException("error message");
}

ps.setInt(2, outputnum);

这应该在没有此例外的情况下执行。