【问题标题】:Error while trying to save input to SQL using JAVA尝试使用 JAVA 将输入保存到 SQL 时出错
【发布时间】: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 开始。所以也更新它。

标签: java mysql database


【解决方案1】:
PreparedStatement park =       dbConn.prepareStatement(parkCar);   
park.setString(1, vehicle.getvBrand());
park.setString(2, vehicle.getvLicense());
park.executeUpdate();

PreparedStatement 设置参数索引从 1 开始。

【讨论】:

    【解决方案2】:

    尝试如下,即不带参数运行executeUpdate(),并且仅在将参数设置为PreparedStatement后:

    PreparedStatement park = dbConn.prepareStatement(parkCar);   
    park.setString(1,vehicle.getvBrand());
    park.setString(2, vehicle.getvLicense());
    park.executeUpdate();
    

    【讨论】:

    • 这里的参数索引不正确——应该是1和2。
    猜你喜欢
    • 1970-01-01
    • 2014-08-09
    • 2020-09-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多