gpt4 book ai didi

Java MySQL 语法错误异常

转载 作者:行者123 更新时间:2023-11-29 01:54:32 25 4
gpt4 key购买 nike

各位!我正在尝试使用 java 创建一个数据库。这是代码

public void createDatabase(String user, String password) {
String query = "CREATE DATABASE IF NOT EXISTS Contacts;use Contacts;CREATE TABLE IF NOT EXISTS info(first_name TEXT,surname TEXT,login TEXT,email TEXT,phone_number INT NOT NULL primary key)";
Connection connection = createConnection(user, password);
try {
Statement statement = connection.createStatement();
int result = statement.executeUpdate(query);
System.out.println("Database is ready for use");
} catch (SQLException e1) {
e1.printStackTrace();
}
finally {
if (connection != null)
try {
connection.close();
System.out.println("Connection closed");
} catch (SQLException e) {
e.printStackTrace();
}

运行后得到

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error  in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use Contacts;CREATE TABLE IF NOT EXISTS info(first_name TEXT,surname TEXT,login ' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:400)
at com.mysql.jdbc.Util.getInstance(Util.java:383)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3847)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3783)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2447)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2594)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2541)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1604)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1535)
at task.DatabaseManager.createDatabase(DatabaseManager.java:28)
at task.Test.main(Test.java:14)
Connection closed

数据库已创建,但表尚未创建。所以问题就在那里。还有一件事。当我将此查询粘贴到 MySQL Workbench 并执行它时 - 它完美运行并创建了我需要的一切。

最佳答案

做一批:

        String[] sqlStatements = new String[] {
"CREATE DATABASE IF NOT EXISTS Contacts",
"use Contacts",
"CREATE TABLE IF NOT EXISTS info(first_name TEXT,surname TEXT,login TEXT,email TEXT,phone_number INT NOT NULL primary key)" };
Connection connection = null;
try {
connection = createConnection(user, password);
Statement statement = connection.createStatement();
for (String sqlStatement : sqlStatements) {
statement.addBatch(sqlStatement);
}
int[] result = statement.executeBatch();
for (int i = 0; i < result.length; i++) {
System.out.println(sqlStatements[i] + " - " + result[i]);
}
System.out.println(result);
System.out.println("Database is ready for use");
} catch (SQLException e1) {
e1.printStackTrace();
} finally {
if (connection != null)
try {
connection.close();
System.out.println("Connection closed");
} catch (SQLException e) {
e.printStackTrace();
}
}

关于Java MySQL 语法错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com