如果不存在,则创建内存数据库和表

时间:2016-04-06 09:26:00

标签: sqlite database-connection

我正在尝试使用sqllite

创建内存数据库
Connection inMemConn = null;
        Class.forName("org.sqlite.JDBC");
        inMemConn = DriverManager.getConnection("jdbc:sqlite:inMemDB.db");
        Statement DBCreateTable = inMemConn.createStatement();
        DBCreateTable.executeUpdate("CREATE DATABASE IF NOT EXISTS inMemDB" );
        DBCreateTable.executeUpdate("USE inMemDB");
        DBCreateTable. executeUpdate("CREATE TABLE IF NOT EXISTS pNumbertable");

我试图用一些Java对象填充它

final String DBinsert = "INSERT INTO pNumbertable VALUES(?,?)";
        PreparedStatement DBAddObjects = inMemConn.prepareStatement(DBinsert);      

        for (int i = 0; i < List.size(); i++) {
            for (int j = 0; j < List2.size(); j++) {

                DBAddObjects.setObject(1, XList.get(i)[0]);
                DBAddObjects.setObject(2, YList.get(j)[1]);
                DBAddObjects.executeUpdate();           
            }
        }

        DBAddObjects.close();
        inMemConn.close();

但是,在运行代码时,我收到以下错误。

near "DATABASE": syntax error

另外,这是创建内存数据库的正确方法吗?

1 个答案:

答案 0 :(得分:0)

SQLite中有CREATE DATABASE语句;通过创建具有所需文件名的连接来创建数据库。

您已打开(或创建)文件名为inMemDB.db的数据库。

要创建in-memory database,您必须改为使用特殊文件名:memory:

DriverManager.getConnection("jdbc:sqlite::memory:");