Java MySQL SQL语法错误
我正在尝试在MySQL数据库中插入一条记录,该记录应插入到表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
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);