1 package org.cacert.gigi.database;
3 import java.io.FileInputStream;
4 import java.io.IOException;
5 import java.sql.Connection;
6 import java.sql.DriverManager;
7 import java.sql.PreparedStatement;
8 import java.sql.SQLException;
9 import java.util.HashMap;
10 import java.util.Properties;
12 public class DatabaseConnection {
14 HashMap<String, PreparedStatement> statements = new HashMap<String, PreparedStatement>();
15 static Properties credentials = new Properties();
18 credentials.load(new FileInputStream("config/sql.properties"));
19 } catch (IOException e) {
23 public DatabaseConnection() {
25 Class.forName(credentials.getProperty("driver"));
26 } catch (ClassNotFoundException e) {
30 c = DriverManager.getConnection(credentials.getProperty("url"),
31 credentials.getProperty("user"),
32 credentials.getProperty("password"));
33 } catch (SQLException e) {
38 public PreparedStatement prepare(String query) throws SQLException {
39 PreparedStatement statement = statements.get(query);
40 if (statement == null) {
41 statement = c.prepareStatement(query);
42 statements.put(query, statement);
46 static ThreadLocal<DatabaseConnection> instances = new ThreadLocal<DatabaseConnection>() {
48 protected DatabaseConnection initialValue() {
49 return new DatabaseConnection();
52 public static DatabaseConnection getInstance() {
53 return instances.get();