You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JDBC更新整数类型字段,解决类型不匹配报错问题

问题解决方法

错误根源

  • 占位符参数顺序匹配错误:UPDATE语句的4个占位符顺序为 cad_nome(第1位)→ cad_idade(第2位,整型)→ cad_apelido(第3位,字符串)→ cad_cpf(第4位,字符串),你的代码中给第2位的整型字段传了字符串类型的年龄输入,又把转换好的整型年龄传给了第3位的字符串字段,触发类型不匹配报错。
  • 重复执行SQL:代码中先后调用executeUpdate()和execute(),属于无意义的重复执行,会导致更新操作执行两次。

修正后代码

PreparedStatement pst = conecta.conn.prepareStatement("update cad_pessoa set cad_nome= ?, cad_idade=?, cad_apelido= ? where cad_cpf= ?");

pst.setString(1, jTextFieldNOME.getText());
// 给第2位的cad_idade字段传转换好的整型值
int n1 = Integer.parseInt(jTextFieldIDADE.getText());
pst.setInt(2, n1);
// 给第3位的cad_apelido字段传对应字符串值
pst.setString(3, jTextFieldAPELIDO.getText());
pst.setString(4, jFormattedTextFieldCPF.getText());

pst.executeUpdate(); // 仅调用一次即可,executeUpdate会返回受影响行数,可自行接收判断执行结果

额外建议

  • 建议给Integer.parseInt()逻辑加异常捕获,避免用户输入非数字内容时程序崩溃
  • 可以添加输入框空值判断,避免输入为空时触发空指针或非法值报错

内容的提问来源于stack exchange,提问作者Luís Felipe Ambrozin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:15:03