【问题标题】:SQL Error or missing database syntax errorSQL 错误或缺少数据库语法错误
【发布时间】:2019-06-07 09:13:51
【问题描述】:

尝试向我的数据库中插入内容时出现 sql 错误。

我给我的方法提供了一堆输入,将输入转换为字符串或 sql 时间并想要存储它。

   public static void setCourseList(String courseDescription, String courseName, LocalTime courseStart, LocalTime courseEnd, LocalDate courseDate, DayOfWeek courseDay) {
 Connection conn = null;
        try {
            // db parameters
            // path to db relative to run time directory
            String url = "jdbc:sqlite:Holiday.db";


        String sqlInsertCourse = "INSERT INTO COURSE (Name,Start,End,Date,Day,Description) VALUES (?, ?,?, ?,?, ?,);";

   conn = DriverManager.getConnection(url);
            System.out.println("Connected");
         Statement stmt = conn.createStatement();
         PreparedStatement pstmt = conn.prepareStatement(sqlInsertCourse);
         pstmt.setString(1, courseName);
         String courseStartString = courseStart.toString();
pstmt.setString(2, courseStartString);
java.sql.Time courseEndTime = Time.valueOf(courseEnd);
pstmt.setTime(3, courseEndTime);
java.sql.Date courseDateDate = java.sql.Date.valueOf(courseDate);
pstmt.setDate(4, courseDateDate);
String courseDayString = courseDay.toString();
pstmt.setString(5, courseDayString);
pstmt.executeUpdate();
pstmt.close();


            System.out.println("Connection to SQLite has been established.");
// create tables if they do not exists
            stmt.execute(sqlInsertCourse);
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
        }


我希望它将输入存储在我的数据库中。 我确实收到 [SQLITE_ERROR] SQL 错误或缺少数据库(靠近“)”:语法错误)错误。

感谢任何帮助。 我是 sql 新手。

【问题讨论】:

  • 您的陈述中最后一个问号后面多了一个逗号。
  • 谢谢你,我不知何故错过了。狡猾的野兽那些逗号;)

标签: java sqlite netbeans


【解决方案1】:

改变

String sqlInsertCourse = "INSERT INTO COURSE (Name,Start,End,Date,Day,Description) VALUES (?, ?,?, ?,?, ?,);";

String sqlInsertCourse = "INSERT INTO COURSE (Name,Start,End,Date,Day,Description) VALUES (?, ?,?, ?,?, ?);"; //<<<<<<<<<< extra comma removed

根据最后一行后面的最后一个逗号的注释 ?已被删除。

【讨论】:

    【解决方案2】:

    和麦克回答的一样,你可以改成

        String sqlInsertCourse = "INSERT INTO COURSE (Name,Start,End,Date,Day,Description) VALUES (""put values here"");";
    

    如果你想知道为什么它没有抛出错误,那是因为java中没有语法错误,SQL中有一个只有数据库可以抛出的错误,但是你的计算机无法识别.希望这能回答您的问题。

    【讨论】:

    • 所以你的意思是像``` String sqlInsertCourse = "INSERT INTO COURSE (Name,Start,End,Date,Day,Description) VALUES (""courseName,courseStart,courseend..."") ;"; ```
    猜你喜欢
    • 2021-04-28
    • 2018-04-10
    • 1970-01-01
    • 2013-06-01
    • 2017-02-11
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多