]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/database/DatabaseConnection.java
Get email of user
[gigi.git] / src / org / cacert / gigi / database / DatabaseConnection.java
index 424723dd2ef7d4f9026ea9d0c7cffef2896163bd..6bed8bd979c2f62aec1b7922779bed3048716063 100644 (file)
@@ -13,7 +13,7 @@ public class DatabaseConnection {
        public static final int CONNECTION_TIMEOUT = 24 * 60 * 60;
        Connection c;
        HashMap<String, PreparedStatement> statements = new HashMap<String, PreparedStatement>();
-       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();
+               }
+       }
 }