java - 如何使用 JDBC 更新整数?
问题描述
我正在尝试更新表格,尝试输入integer
(年龄)。
首先我遇到了同样的问题insert
,他们在这里得到了一些答案之后,我可以设法正常工作,但是,在update
命令上使用相同的解决方案,不起作用。
这是解决方案insert
:
PreparedStatement pst = conecta.conn.prepareStatement("INSERT INTO cad_pessoa(cad_cpf,cad_nome, cad_idade, cad_apelido, cad_data) values (?,?,?,?,?)");
pst.setString(1, jFormattedTextFieldCPF.getText()); //pega o texto insirido e armazena no banco de dados
pst.setString(2, jTextFieldNOME.getText()); //pega o texto insirido e armazena no banco de dados
int n1 = Integer.parseInt(jTextFieldIDADE.getText());
pst.setInt(3, n1); //pega o texto insirido e armazena no banco de dados
pst.setString(4, jTextFieldAPELIDO.getText());//pega o texto insirido e armazena no banco de dados
SimpleDateFormat formatter = new SimpleDateFormat ("dd-MM-yyyy");
java.util.Date utilDate = null;
try {
utilDate = formatter.parse(jFormattedTextFieldDATA.getText());
} catch (ParseException ex) {
Logger.getLogger(Pessoa3.class.getName()).log(Level.SEVERE, null, ex);
}
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
pst.setDate(5, sqlDate);
pst.executeUpdate();
的问题update
是:列是整数类型,但表达式的类型是字符变化。
这是代码update
:
PreparedStatement pst = conecta.conn.prepareStatement("update cad_pessoa set cad_nome= ?, cad_idade=?, cad_apelido= ? where cad_cpf= ?");
pst.setString(1, jTextFieldNOME.getText()); //pega o texto insirido e armazena no banco de dados
pst.setString(2, jTextFieldIDADE.getText()); //pega o texto insirido e armazena no banco de dados
int n1 = Integer.parseInt(jTextFieldIDADE.getText()); //string to int
pst.setInt(3, n1); //pega o texto insirido e armazena no banco de dados
pst.setString(4, jFormattedTextFieldCPF.getText()); //pega o texto insirido e armazena no banco de dados
pst.executeUpdate(); //executa o SQL
pst.execute();
那么,我怎样才能使这项工作?
解决方案
这里有一些建议:
当我看到 Swing 和数据库代码混合在一起时,这很糟糕。将它们严格分开。您的应用程序应该分层构建。
我不会坚持年龄,因为它每天都在变化。我会坚持生日并在需要时计算年龄。
你没有说哪个语句给你错误。我假设它在这里:
int n1 = Integer.parseInt(jTextFieldIDADE.getText()); //string to int pst.setInt(3, n1); //pega o texto insirido e armazena no banco de dados
该变量cad_apeli
是 INSERT 中的第四个参数,但它是 UPDATE 中的第三个参数。我猜你对列有一些困惑。
推荐阅读
- python - 问题运行 streamlit hello
- linkedin - LinkedIn 共享 api 以检索喜欢和评论
- c# - 如何在运行时为 C# 中的测试生成、编译和应用迁移?
- sql - SSMS 执行视图超时
- firebase - 网络上的 Firebase 身份验证和 Facebook 共享对话框
- linq - Linq 得到条件计数
- reactjs - 从 MongoDB 填充 Material-UI DataGrid 失败,因为找不到唯一 ID
- stata - 循环内的Stata if条件
- r - 如何在 RStudio 中保存数据对象?
- java - 获取 Ring Indicator isRING() 并使用 jssc 库将其添加到侦听器?