Не могу понять, как избавиться от синтаксической ошибки в mysql

#java #mysql #database #intellij-idea

#java #mysql #База данных #intellij-идея

Вопрос:

Я пытаюсь запустить оператор в главном файле Java, и я могу подключиться к базе данных, но не запускать оператор sql, который мой код:

 try {
            System.out.println("Connecting to the database...");
            conn=DriverManager.getConnection(DB_URL,USER,PASS);
            System.out.println("Connected to database successfully");
            System.out.println("Inserting");
            stmt=conn.createStatement();
            String sql="USE TheEmployeeDatabase"  
                    "SELECT * FROM EmployeeTable";
            stmt.executeUpdate(sql);
            System.out.println("worked");
        }  catch (SQLException e) {
            e.printStackTrace();
        }
 

и получение ошибки

 You have an error in your SQL syntax
 

Комментарии:

1. Если вы напечатали значение String sql или проверили его в отладчике, вы увидите, что вы объединили имя базы данных с SELECT ключевым словом.

2. Кроме того, обратите внимание, что обычно база данных указывается в URL-адресе JDBC, а не через USE оператор. Кроме того, я подозреваю, но не проверял, что USE это должен быть отдельный оператор, а не модификатор для SELECT оператора. В этом случае вам, по крайней мере, понадобится точка с запятой между двумя операторами.

3. @JohnBollinger У меня есть URL-адрес JBDC. Куда бы я поместил это в инструкции?

4. Вы не помещаете URL-адрес JDBC в инструкцию. Можете ли вы включить свой URL-адрес JDBC (без какой-либо личной информации) в свой вопрос?

Ответ №1:

Пока имя схемы TheEmployeeDatabase1 является частью вашего DB_URL , вам не нужно иметь USE TheEmployeeDatabase инструкцию.

Ваше утверждение должно быть просто:

 SELECT * FROM EmployeeTable
 

Комментарии:

1. Большое вам спасибо. Как бы вы вывели результаты?

2. Вы используете executeUpdate . Это используется, когда вы хотите вставить, обновить или удалить что-то в базе данных. Когда вы хотите что-то выбрать, вы должны использовать executeQuery which вернет вам a ResultSet . Прочитайте документы Java об Statement и ResultSet .

Ответ №2:

String sql=»ИСПОЛЬЗОВАТЬ базу данных employeedatabase » <— здесь нужны пробелы, иначе у вас будет объединен выбор базы данных employeedatabaseselect

Комментарии:

1. USE TheEmployeeDatabase SELECT * FROM EmployeeTable также не является допустимым оператором SQL.

2. как вы отображаете результаты для оператора select