【发布时间】:2015-05-09 10:58:27
【问题描述】:
我正在尝试在我的 MySQL 数据库中插入一条记录,该记录应插入到表 medication_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();
}
我找不到错误在哪里,因为我看到插入语法是正确的
有什么建议吗?
提前致谢
【问题讨论】:
-
您的 MySQL 查询中有一些错字。没有左括号。在将代码复制粘贴到 StackOverflow 之前,请仔细查看代码。
-
我相信你在
medication_profile之后缺少一个开头(,而且你在SQL 语句的末尾也有太多)。 -
你准备好的声明是
INSERT INTO medication_profile, medication_type, diabetic_id, times_a_day, dose) VALUES (?,?,?,?))。而你真的没有看到错误? -
@TagirValeev 在这种情况下,请将问题标记为离题。很快你就可以投票赞成关闭。
标签: java mysql sql jdbc prepared-statement