我正在尝试更新位于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();
}
}
}