Java 在将文本字段转发到数据库之前,如何降低其值

Java 在将文本字段转发到数据库之前,如何降低其值,java,netbeans,Java,Netbeans,我的问题是,在系统将数据提交到我的数据库(sql)之前,我想将txtcounts减少1,就像您在图书馆借书时,副本减少1一样,希望有人能帮助我,提前谢谢您 您可以将字符串解析为Int: String sql = "Insert Into borrower (bid,bname,bbooknum,btitle,bcounts,dateb,dater) values (?,?,?,?,?,?,?)"; try { pst = cn.prepareStatement(sql);

我的问题是,在系统将数据提交到我的数据库(sql)之前,我想将txtcounts减少1,就像您在图书馆借书时,副本减少1一样,希望有人能帮助我,提前谢谢您

您可以将字符串解析为Int:

 String sql = "Insert Into borrower (bid,bname,bbooknum,btitle,bcounts,dateb,dater) values  (?,?,?,?,?,?,?)";

try {
    pst = cn.prepareStatement(sql);


    pst.setString(1, txtid.getText());
    pst.setString(2, txtname.getText());
    pst.setString(3, txtbooknum.getText());
    pst.setString(4, txttitle.getText());
    pst.setString(5, txtcounts.getText());
    pst.setString(6, txtdateb.getText());
    pst.setString(7, ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText());

    pst.execute();


    JOptionPane.showMessageDialog(null, "Book Successfully Borrowed!");

} catch (Exception e) {


}
最好捕获
NumberFormatException
,或者替换所有其他字符:

  pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText())-1));

使用解析将字符串转换为规定的整数

 pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText().replaceAll("[^\\d.]", ""))-1));

但是请使用
try catch
覆盖代码,因为如果输入不是字符串,则此代码会生成异常,它将发出
NumberFormatException

您可以将txtCounts强制转换为整数,并在完成后将其减少1。您可以将其强制转换为字符串,以便:

String str=""+(Integer.parseInt(txtcounts.getText())-1)
pst.setString(5,str);
在您的情况下:

pst.setString(5, txtcounts.getText());
或使代码更具可读性:

pst.setString(5, String.valueOf(Integer.valueOf(txtcounts.getText())-1));

请修正缩进。txtcount是多少?永远不要空捕。您的问题不清楚,无法将textfield字符串转换为整数,请将其减小,然后再转换回字符串。txtcount是一个jTextField。稍后将尝试回击您编辑:它不起作用。。Int不能转换为string这个作品谢谢你的任务我是认真的我花了6个小时才想到你是个救生员
int tempInt = Integer.valueOf(txtcounts.getText());
tempInt -- ;//reduces tempInt by one 
pst.setString(5, Integer.valueOf(tempInt));