gpt4 book ai didi

java - JAVA 中的 SQL 语法形式 getText();

转载 作者:行者123 更新时间:2023-11-29 01:36:13 24 4
gpt4 key购买 nike

只是寻求一点帮助,

在 JAVA 中创建了一个应用程序并使用 jTable 从 myphp 数据库收集数据,我正在使用插入、更新和删除 SQL 命令以便用户能够操作表中的数据。

删除完美无缺,但是我在更新和插入命令时遇到了一些问题,只是想知道是否有人可以看到我是否错误地使用了 ("'+),我不像更有经验的人那样敏锐,所以只是看看是否任何人都可以阐明 :)

谢谢!

插入代码:

String query = "INSERT INTO `supplier`(`Company Name`, `Contact`, `Address`, `Postcode`, `Phone`) VALUES ('"+jTextField_SupplierCompany.getText()+"','"+jTextField_SupplierContact.getText()+"',"+jTextField_SupplierAddress.getText()+"','"+jTextField_SupplierPostcode.getText()+"',"+jTextField_SupplierPhone.getText()+")";

更新代码:

String query = "UPDATE `supplier` SET `Company Name`='"+jTextField_SupplierCompany.getText() + "',`Contact`='"+jTextField_SupplierContact.getText() + "',`Address`="+jTextField_SupplierAddress.getText() + "',`Postcode`="+jTextField_SupplierPostcode.getText() + "',`Phone`="+jTextField_SupplierPhone.getText() + " WHERE `ID` = "+jTextField_SupplierID.getText();

错误:

抛出的错误是“UPDATE”语句中 WHERE 子句的误用……对某些人来说可能是显而易见的,但我无法理解它。

最佳答案

要避免这些类型的语法错误或任何 SQL 注入(inject),您可以改用 PreparedStatement,它非常简单且非常有用:

String query = "INSERT INTO `supplier`(`Company Name`, `Contact`, `Address`, `Postcode`, `Phone`) "
+ "VALUES (?, ?, ?, ?, ?)";
try (PreparedStatement pstm = conn.prepareStatement(query)) {
pstm.setString(1, jTextField_SupplierCompany.getText());
pstm.setString(2, jTextField_SupplierContact.getText());
pstm.setString(3, jTextField_SupplierAddress.getText());
pstm.setString(4, jTextField_SupplierPostcode.getText());
pstm.setString(5, jTextField_SupplierPhone.getText());

pstm.executeUpdate();
}

你的错误发生是因为你忘记用 '' 关闭你的字符串检查你的查询,你会看到:

+"', " + jTextField_SupplierAddress.getText() + "'
//--^--------------------------------------------^

关于java - JAVA 中的 SQL 语法形式 getText();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com