X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fdatabase%2FDatabaseConnection.java;h=6bed8bd979c2f62aec1b7922779bed3048716063;hb=35733d6e3c2b8706de5739d3d1ef6cc93a8ea5f6;hp=424723dd2ef7d4f9026ea9d0c7cffef2896163bd;hpb=634b7f75c8fc2ed8799bad74731278fb59198c48;p=gigi.git diff --git a/src/org/cacert/gigi/database/DatabaseConnection.java b/src/org/cacert/gigi/database/DatabaseConnection.java index 424723dd..6bed8bd9 100644 --- a/src/org/cacert/gigi/database/DatabaseConnection.java +++ b/src/org/cacert/gigi/database/DatabaseConnection.java @@ -13,7 +13,7 @@ public class DatabaseConnection { public static final int CONNECTION_TIMEOUT = 24 * 60 * 60; Connection c; HashMap statements = new HashMap(); - private static Properties credentials = new Properties(); + private static Properties credentials; Statement adHoc; public DatabaseConnection() { try { @@ -44,7 +44,8 @@ public class DatabaseConnection { ensureOpen(); PreparedStatement statement = statements.get(query); if (statement == null) { - statement = c.prepareStatement(query); + statement = c.prepareStatement(query, + Statement.RETURN_GENERATED_KEYS); statements.put(query, statement); } return statement; @@ -80,10 +81,30 @@ public class DatabaseConnection { public static DatabaseConnection getInstance() { return instances.get(); } + public static boolean isInited() { + return credentials != null; + } public static void init(Properties conf) { if (credentials != null) { throw new Error("Re-initiaizing is forbidden."); } credentials = conf; } + public void beginTransaction() throws SQLException { + c.setAutoCommit(false); + } + public void commitTransaction() throws SQLException { + c.commit(); + c.setAutoCommit(true); + } + public void quitTransaction() { + try { + if (!c.getAutoCommit()) { + c.rollback(); + c.setAutoCommit(true); + } + } catch (SQLException e) { + e.printStackTrace(); + } + } }