Ошибка SQL или отсутствует синтаксическая ошибка базы данных - PullRequest
0 голосов
/ 07 июня 2019

Я получаю ошибку 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());
            }
        }
        }


Я ожидаю, что он сохранит данные в моей БД. Вместо этого я получаю ошибку SQL [SQLITE_ERROR] или отсутствует база данных (около ")": синтаксическая ошибка).

Любая помощь приветствуется. Я новичок в sql.

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Изменение

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

Согласно комментарию к строке последняя запятая после последней? был удален.

0 голосов
/ 07 июня 2019

То же, что ответил Майк, вы можете изменить его на

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

Если вам интересно, почему он не выдает ошибку, это потому, что в java нет синтаксической ошибки, есть ошибка в SQL, которую может выдать только база данных, но ваш компьютер не может распознать , Надеюсь, что это отвечает на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...