所以基本上我试图通过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}
答案 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+"'