在搜索有类似问题的人的stackoverflow之后,我找不到我的具体情况的答案。我正在格式化我的时间戳,以适应SQL插入时间戳的方式。我不断收到此错误:
您的SQL语法有误;检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的'show(theater_id,movie_id,st_time,end_time,lang)值(1,4,'2018-10-297 16:1')附近使用< / strong>
<%
Driver d = new Driver();
String entryString = "insert into show(theater_id, movie_id, st_time, end_time, lang) values(?,?,?,?,?);";
ArrayList<Object> vals = new ArrayList<Object>();
SimpleDateFormat date = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
vals.add(new Integer(1));
vals.add(new Integer(4));
vals.add(date.format(Timestamp.valueOf("2018-10-24 16:10:0")));
vals.add(date.format(Timestamp.valueOf("2018-10-24 18:31:0")));
vals.add("English");
d.entry(entryString, vals);%>
public void entry(String entryString, ArrayList<Object> vals) {
int i = 1;
try {
sql = dbconn.prepareStatement(entryString);
for(Object o: vals) {
sql.setObject(i,o);
i++;
}
System.out.println(sql.toString()+"\n"+Arrays.toString(vals.toArray()));
sql.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
这也是println喷出的东西
com.mysql.cj.jdbc.ClientPreparedStatement: insert into show(theater_id, movie_id, st_time, end_time, lang) values(1,4,'2018-10-297 16:10:00','2018-10-297 18:31:00','English');
[1, 4, 2018-10-297 16:10:00, 2018-10-297 18:31:00, English]
答案 0 :(得分:0)
String entryString = "insert into changeShowName(theater_id, movie_id, st_time, end_time, lang) values(?,?,?,?,?);";
SHOW CREATE VIEW 语句用于显示创建视图语句。 SHOW DATABASES语句用于列出MySQL服务器主机上的数据库。 SHOW SCHEMAS可以用作SHOW DATABASES的同义词。如果LIKE子句与 SHOW DATABASES 一起出现,则指示要匹配的数据库名称。 不要创建show table,因为show在mysql中是预定义的。