资源文件夹中的SQLite JDBC数据库不会更新

时间:2017-06-06 20:19:31

标签: java database sqlite jdbc intellij-idea

我正在尝试更新位于intelliJ中模块资源文件夹中的数据库。

我可以连接到数据库并且SELECT查询正常工作,即getUpdateTime()正常运行。

使用GUI我可以手动将行插入数据库的表中。我也可以在GUI中使用SQL UPDATE查询来插入行。

但是当我调用insertAccountValue()时,没有任何内容添加到数据库中。没有StackTrace打印和"添加"打印到控制台。

这是我的代码......

public class LocalDatabase {

    private static Statement stat;
    private static Connection conn;

    // Connects to the Local Database used for saving data
    static {
        try {
            Class.forName("org.sqlite.JDBC");
            conn = DriverManager.getConnection("jdbc:sqlite:" + LocalDatabase.class.getClassLoader().getResource("DashboardDatabase.db"));
            stat = conn.createStatement();
            System.out.println("CONNECTED TO LOCAL");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static long getUpdateTime() {
        try {
            ResultSet rs = stat.executeQuery("SELECT time FROM account_values ORDER BY time DESC LIMIT 1;");
            if (rs.next())
                return rs.getLong("time");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return -1;
    }


    public static void insertAccountValue(long time, String account, int value) {
        try {
            stat.executeUpdate("INSERT INTO account_values VALUES (12, 'test', 1212, 12);");
            stat.executeUpdate("INSERT INTO account_values VALUES (" + time + ", '"
                    + account.replaceAll("'", "''") + "', " + value + ");");
            System.out.println("ADDED");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void closeConnection() {
        try {
            stat.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

0 个答案:

没有答案