如何在sql

时间:2018-04-06 05:52:14

标签: mysql sql jdbc

所以基本上我试图通过jdbc驱动程序更新我的表中的记录,jdbc驱动程序不允许我更新任何记录,它不断抛出此错误消息

  

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以获得正确的语法,以便使用“设置品牌='日产'”,设置类型='压缩机车辆',设置模型=& #39; zx1000x',设置dateAq'在第1行

我检查了所有值,它们的格式与sql的格式相同。我怀疑它是没有成功的日期记录。

以下是我使用

的sql语法
update vehicles set capacity = "+capacity+",set brand ='"+brand+"', set type='"+type+"',set model='"+model+"',set dateAqcuire ="+date+" where registrationPlate ='"+registrationNumber+"'
public void updateVehicle(){
database db = new database();
String registrationNumber = RegistrationPlate.getText();
int vehicleCapacity = Integer.parseInt(capacity.getText());
String brandz= brand.getText();
String vehicletype = vehicleType.getValue();
String vehicleModel = Model.getText();
LocalDate localDate= dateAccquire.getValue();
java.sql.Date date = java.sql.Date.valueOf(localDate);
db.UpdateVehicle(registrationNumber, vehicleCapacity, brandz, vehicletype, vehicleModel, date);
vehicleAlerts("updated");
}

以下是方法签名

public void UpdateVehicle(String registrationNumber,int capacity,String brand,String type,String model,java.sql.Date date){//code to update records}

3 个答案:

答案 0 :(得分:0)

每次列前不要放SET,只需使用SET一次关键字。

update vehicles 
set capacity = "+capacity+", 
    brand ='"+brand+"', 
    type='"+type+"', 
    model='"+model+"', 
    dateAqcuire ="+date+" 
where registrationPlate ='"+registrationNumber+"'

常规语法: 更新一个表时,MariaDB UPDATE语句的语法是:

UPDATE table
SET column1 = expression1,
    column2 = expression2,
    ...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

答案 1 :(得分:0)

您只需要设置一个关键字:

update vehicles set capacity = "+capacity+",brand ='"+brand+"', type='"+type+" ..

了解准备好的语句以防止SQL注入

答案 2 :(得分:0)

使用设置关键字一次并在报价中设置日期。

update vehicles 
set capacity = "+capacity+", 
    brand ='"+brand+"', 
    type='"+type+"', 
    model='"+model+"', 
    dateAqcuire ='"+date+"'
where registrationPlate ='"+registrationNumber+"'