简体   繁体   English

JSP SQL INSERT使用时间戳和准备好的语句格式错误

[英]JSP SQL INSERT formatted incorrectly using Timestamp and prepared statement

After searching stackoverflow for people with similar problems, I couldn't find an answer for my specific case. 在搜索stackoverflow中有类似问题的人之后,我找不到针对我的特定情况的答案。 I'm formatting my Timestamp to fit in with how SQL inserts timestamps. 我正在格式化我的时间戳,以适应SQL插入时间戳的方式。 I keep getting this error: 我不断收到此错误:

You have an error in your SQL syntax; 您的SQL语法有误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show(theater_id, movie_id, st_time, end_time, lang) values(1,4,'2018-10-297 16:1' at line 1 检查与您的MySQL服务器版本对应的手册以获取正确的语法,以在第1行的'show(theater_id,movie_id,st_time,end_time,lang)值(1,4,'2018-10-297 16:1')附近使用

<%
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();
    }
}

Here's what that println spits out, too 这也是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]
String entryString = "insert into changeShowName(theater_id, movie_id, st_time, end_time, lang) values(?,?,?,?,?);";

SHOW CREATE VIEW statement is used to show the create view statement. SHOW CREATE VIEW语句用于显示创建视图语句。 SHOW DATABASES statement is used to lists the databases on the MySQL server host. SHOW DATABASES语句用于列出MySQL服务器主机上的数据库。 The SHOW SCHEMAS can be used as a synonym for SHOW DATABASES. SHOW SCHEMAS可以用作SHOW DATABASES的同义词。 If the LIKE clause is present along with the SHOW DATABASES , indicates which database names to match. 如果LIKE子句与SHOW DATABASES一起存在,则指示要匹配的数据库名称。 Don't be create a show table because show is predefine in mysql. 不要创建show table,因为show在mysql中是预定义的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM