如何使用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列。
答案 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);
这应该在没有此例外的情况下执行。