Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL SQL语法错误_Java_Mysql_Sql_Jdbc_Prepared Statement - Fatal编程技术网

Java MySQL SQL语法错误

Java MySQL SQL语法错误,java,mysql,sql,jdbc,prepared-statement,Java,Mysql,Sql,Jdbc,Prepared Statement,我正在尝试在MySQL数据库中插入一条记录,该记录应插入到表medicing\u profile中,但我收到以下错误消息: 线程“main”中出现异常 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “药物类型、糖尿病患者id、每天次数、剂量)值('注射'、2,1、'18')” 在1号线 我在java中用于插入此记录的代码如下: Prepare

我正在尝试在MySQL数据库中插入一条记录,该记录应插入到表
medicing\u profile
中,但我收到以下错误消息:

线程“main”中出现异常 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “药物类型、糖尿病患者id、每天次数、剂量)值('注射'、2,1、'18')” 在1号线

我在java中用于插入此记录的代码如下:

PreparedStatement addMedicationStm = con.prepareStatement("INSERT INTO medication_profile"
            + ", medication_type, diabetic_id, times_a_day, dose) "
            + "VALUES (?,?,?,?))", Statement.RETURN_GENERATED_KEYS);
    addMedicationStm.setString(1, medication.getMedicationType());
    addMedicationStm.setInt(2, medication.getDiabeticID());
    addMedicationStm.setInt(3, medication.getTimesPerDay());
    addMedicationStm.setString(4, medication.getDose());
    addMedicationStm.executeUpdate();

    ResultSet rs = addMedicationStm.getGeneratedKeys();

    if (rs != null && rs.next()) {
        medication.setDiabeticID(rs.getInt(1));
        addMedicationStm.close();
        con.close();
    }
我无法找到错误所在,因为我看到插入语法是正确的

有什么建议吗


提前感谢

您的字符串查询连接到:

INSERT INTO medication_profile, medication_type, diabetic_id, times_a_day, dose) VALUES (?,?,?,?) 插入药物配置文件、药物类型、糖尿病患者id、每天次数、剂量)值(?,,?) 应该是这样的

INSERT INTO medication_profile (medication_type, diabetic_id, times_a_day, dose) VALUES (?,?,?,?) 插入药物配置文件(药物类型、糖尿病id、每天次数、剂量)值(?、、?、?)
删除表名后的逗号并添加


您将括号和逗号放错了位置:

PreparedStatement addMedicationStm = 
    con.prepareStatement
        ("INSERT INTO medication_profile"
            + "(medication_type, diabetic_id, times_a_day, dose) "
            + "VALUES (?,?,?,?)";

此处的sql语法错误:

PreparedStatement addMedicationStm = con.prepareStatement("INSERT INTO medication_profile"
        + ", medication_type, diabetic_id, times_a_day, dose) "
        + "VALUES (?,?,?,?))", Statement.RETURN_GENERATED_KEYS);
语法应该类似于:

 PreparedStatement addMedicationStm = con.prepareStatement("INSERT INTO "
       + "yourtableName "
       + "(column1Name, column2Name,...) " 
       + "VALUES (?,?,...)", Statement.RETURN_GENERATED_KEYS);

您的MySQL查询中有一些输入错误。没有左括号。在将代码复制粘贴到StackOverflow之前,请仔细查看您的代码。您缺少了一个开头
之后是
我相信,您有一个
SQL语句末尾的内容也太多。您准备的语句将读取
插入药物配置文件、药物类型、糖尿病患者id、每天次数、剂量)值(?,,,?)
。你真的看不到错误吗?@TagirValeev在这种情况下,请将问题标记为离题。很快你就可以投票支持close了。
 PreparedStatement addMedicationStm = con.prepareStatement("INSERT INTO "
       + "yourtableName "
       + "(column1Name, column2Name,...) " 
       + "VALUES (?,?,...)", Statement.RETURN_GENERATED_KEYS);