【发布时间】:2019-11-28 17:18:24
【问题描述】:
我正在尝试使用 Java 在 MySQL 中输入我的详细信息。 但我一直有以下错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“?,?)”附近使用正确的语法
这是我的代码:
Vehicle vehicle = new Vehicle();
int vType;
System.out.println("Please enter Vehicle Type\n1 = Car\n2 = Van\n3 = Motorbike\n4 = Motorbike");
vType = input.nextInt();
if (vType==1){
System.out.println("Car Brand: ");
vehicle.setvBrand(input.next());
System.out.println("Car License Plate: ");
vehicle.setvLicense(input.next());
try {
Connection dbConn = DriverManager.getConnection(url,user,pass);
String parkCar = "INSERT INTO car_park_details(vehicle_brand, vehicle_license) values( ?, ?)";
PreparedStatement park = dbConn.prepareStatement(parkCar);
park.executeUpdate(parkCar);
park.setString(2,vehicle.getvBrand());
park.setString(3, vehicle.getvLicense());
park.execute();
System.out.println("Try daw check sa DB MYONG!");
}
catch (Exception ex){
System.out.println("Error" + ex);
}
}
我做错了吗?我是一个初学者Java开发人员。感谢您的帮助。
【问题讨论】:
-
您尝试使用不同的方法执行两次查询,并且在设置查询参数之前调用其中一次执行。只需从您的代码中删除这一行:
park.executeUpdate(parkCar); -
@GMB 不正确。不带参数调用
park.executeUpdate(),然后删除下面的park.execute()行。 -
@GMB 你是对的,只是添加,preparedStatement.set 从索引 1 开始。所以也更新它。