#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 вернет вам aResultSet
. Прочитайте документы Java обStatement
иResultSet
.
Ответ №2:
String sql=»ИСПОЛЬЗОВАТЬ базу данных employeedatabase » <— здесь нужны пробелы, иначе у вас будет объединен выбор базы данных employeedatabaseselect
Комментарии:
1.
USE TheEmployeeDatabase SELECT * FROM EmployeeTable
также не является допустимым оператором SQL.2. как вы отображаете результаты для оператора select