]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/dbObjects/CertificateProfile.java
fix: SQL change database call pattern
[gigi.git] / src / org / cacert / gigi / dbObjects / CertificateProfile.java
index 87f55f7441bc6eaa9ce000ffd95152585741ea89..6f57b3ec0a7d1a848841e60b1c099d425ef50552 100644 (file)
@@ -10,7 +10,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
-import org.cacert.gigi.database.DatabaseConnection;
 import org.cacert.gigi.database.GigiPreparedStatement;
 import org.cacert.gigi.database.GigiResultSet;
 
@@ -190,39 +189,41 @@ public class CertificateProfile implements IdCachable {
             }
 
             String[] parts = f.getName().split("\\.")[0].split("-", 2);
-            GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT `keyname`, `include`, `requires`, `name` FROM `profiles` WHERE `id`=?");
-            ps.setInt(1, Integer.parseInt(parts[0]));
-            GigiResultSet rs = ps.executeQuery();
-
-            if (rs.next()) {
-                if ( !rs.getString("keyname").equals(parts[1])) {
-                    throw new Error("Config error. Certificate Profile mismatch");
-                }
-                if ( !rs.getString("include").equals(p.getProperty("include"))) {
-                    throw new Error("Config error. Certificate Profile mismatch");
-                }
-                if ( !rs.getString("requires").equals(p.getProperty("requires", ""))) {
-                    throw new Error("Config error. Certificate Profile mismatch");
+            try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT `keyname`, `include`, `requires`, `name` FROM `profiles` WHERE `id`=?")) {
+                ps.setInt(1, Integer.parseInt(parts[0]));
+                GigiResultSet rs = ps.executeQuery();
+
+                if (rs.next()) {
+                    if ( !rs.getString("keyname").equals(parts[1])) {
+                        throw new Error("Config error. Certificate Profile mismatch");
+                    }
+                    if ( !rs.getString("include").equals(p.getProperty("include"))) {
+                        throw new Error("Config error. Certificate Profile mismatch");
+                    }
+                    if ( !rs.getString("requires").equals(p.getProperty("requires", ""))) {
+                        throw new Error("Config error. Certificate Profile mismatch");
+                    }
+                } else {
+                    try (GigiPreparedStatement insert = new GigiPreparedStatement("INSERT INTO `profiles` SET `keyname`=?, `include`=?, `requires`=?, `name`=?, `id`=?")) {
+                        insert.setString(1, parts[1]);
+                        insert.setString(2, p.getProperty("include"));
+                        insert.setString(3, p.getProperty("requires", ""));
+                        insert.setString(4, p.getProperty("name"));
+                        insert.setInt(5, Integer.parseInt(parts[0]));
+                        insert.execute();
+                    }
                 }
-            } else {
-                GigiPreparedStatement insert = DatabaseConnection.getInstance().prepare("INSERT INTO `profiles` SET `keyname`=?, `include`=?, `requires`=?, `name`=?, `id`=?");
-                insert.setString(1, parts[1]);
-                insert.setString(2, p.getProperty("include"));
-                insert.setString(3, p.getProperty("requires", ""));
-                insert.setString(4, p.getProperty("name"));
-                insert.setInt(5, Integer.parseInt(parts[0]));
-                insert.execute();
             }
         }
 
-        GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT `id`, `keyname`, `name`, `requires`, `include` FROM `profiles`");
-        GigiResultSet rs = ps.executeQuery();
-        while (rs.next()) {
-            CertificateProfile cp = new CertificateProfile(rs.getInt("id"), rs.getString("keyName"), rs.getString("name"), rs.getString("requires"), rs.getString("include"));
-            myId.put(cp.getId(), cp);
-            myName.put(cp.getKeyName(), cp);
+        try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT `id`, `keyname`, `name`, `requires`, `include` FROM `profiles`")) {
+            GigiResultSet rs = ps.executeQuery();
+            while (rs.next()) {
+                CertificateProfile cp = new CertificateProfile(rs.getInt("id"), rs.getString("keyName"), rs.getString("name"), rs.getString("requires"), rs.getString("include"));
+                myId.put(cp.getId(), cp);
+                myName.put(cp.getKeyName(), cp);
+            }
         }
-
         byName = Collections.unmodifiableMap(myName);
         byId = Collections.unmodifiableMap(myId);
     }