【发布时间】:2017-12-28 20:07:19
【问题描述】:
我正在尝试使用 JDBC 在文件夹 D:\sqlite 中创建一个名为 test 的新数据库文件,如下所示:
import java.sql.*;
public class Class1 {
private static void createNewDataBase(){
String url = "jdbc:sqlite:D:sqlite/";
Connection conn = null;
Statement statement = null;
try{
conn = DriverManager.getConnection(url);
System.out.println("Connection Established");
statement = conn.createStatement();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
try {
statement.execute("CREATE DATABASE test");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally{
try{
if(statement != null)
statement.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
try{
if(conn != null)
conn.close();
}catch(SQLException e){
System.out.println(e.getMessage());
}
}
}
public static void main(String[] args){
createNewDataBase();
}
}
当我运行项目时,我得到以下输出:
Connection Established
[SQLITE_ERROR] SQL error or missing database (near "DATABASE": syntax error)
Process finished with exit code 0
它说语法错误,但我找不到错误。我一直在寻找类似问题的答案,但没有一个能解决我的问题。谁能告诉我有什么问题?提前致谢!
【问题讨论】:
-
SQLite 中没有
CREATE DATABASE语句。见documentation。为什么你认为有? -
可能是一个反问,但如果不使用 SQL,SQLite 的功能更少,并且增加了一层额外的复杂性,那么它的意义何在?
-
@JacobH - 嗯,因为它是 SQL,但是 Lite?它是一个轻量级的无服务器关系数据库引擎。它没有
CREATE DATABASE,因为您只需创建一个不同的实例。不考虑用户,因为执行进程是唯一的用户。等等等等。 -
SQL(标准)中没有
CREATE DATABASE