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

时间:2017-04-07 15:08:30

标签: java mysql sql jdbc

只是寻求一些帮助,

在JAVA中创建了一个应用程序并使用jTable从myphp数据库中收集数据,我正在使用Insert,update和delete SQL命令,以便用户能够操作表中的数据。

删除工作完美,但是我的更新和插入命令有些麻烦,只是想知道是否有人可以看到我是否正确使用(“'+)错误,我不像老鹰那样有经验的人,所以只是看看是否任何人都可以解释一下:)

谢谢!

INSERT CODE:

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();

ERROR:

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

2 个答案:

答案 0 :(得分:4)

为了避免这些类型的语法错误或任何SQL注入,您可以使用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() + "'
//--^--------------------------------------------^

答案 1 :(得分:0)

您错过了查询中的单引号

将其用于插入

字符串查询=“INSERT INTO supplierCompany NameContactAddressPostcodePhone)VALUES('”+ jTextField_SupplierCompany.getText()+ “ ' ' ”+ jTextField_SupplierContact.getText()+“', ' ”+ jTextField_SupplierAddress.getText()+“', ' ”+ jTextField_SupplierPostcode.getText()+“','” + jTextField_SupplierPhone。的getText()+ “')”;

使用此功能进行更新

字符串查询=“更新”供应商'SET'公司名称='"+jTextField_SupplierCompany.getText() + "',联系='"+jTextField_SupplierContact.getText() + "',地址='"+jTextField_SupplierAddress.getText() + "',邮政编码='"+jTextField_SupplierPostcode.getText() + "',电话='"+jTextField_SupplierPhone.getText() + "' WHERE ID` ='“+ jTextField_SupplierID.getText()+ “'”;