package nl.itopia.corendon.model; import nl.itopia.corendon.Config; import nl.itopia.corendon.utils.Log; import java.sql.*; /** * * @author Jeroentje */ public class DatabaseManager { private static final DatabaseManager manager = new DatabaseManager(); public static final String JDBC_EXCEPTION = "JDBC Exception: "; public static final String SQL_EXCEPTION = "SQL Exception: "; public Connection connection; private DatabaseManager() {} public static DatabaseManager getDefault() { return manager; } /** * Open database connection */ public void openConnection() { try { Class.forName("com.mysql.jdbc.Driver"); Log.display("Establishing connection", Config.DB_HOST, Config.DB_NAME, Config.DB_USER, Config.DB_PASS); /** Open connection */ String url = "jdbc:mysql://"+Config.DB_HOST+"/"+Config.DB_NAME; connection = DriverManager.getConnection(url, Config.DB_USER, Config.DB_PASS); Log.display(connection); } catch (ClassNotFoundException e) { Log.display(JDBC_EXCEPTION, e.getMessage()); } catch (SQLException e) { Log.display(SQL_EXCEPTION, e.getErrorCode(), e.getSQLState(), e.getMessage()); } } /** * Close database connection */ public void closeConnection() { try { connection.close(); } catch (SQLException e) { Log.display(SQL_EXCEPTION, e.getErrorCode(), e.getSQLState(), e.getMessage()); } } /** * Executes a query without result. * @param query, the SQl query */ public void executeQuery(String query) throws SQLException { Statement statement = connection.createStatement(); statement.executeQuery(query); } /** * Executes a query with result. * @param query, the SQL query */ public ResultSet doQuery(String query) throws SQLException { ResultSet result = null; Statement statement = connection.createStatement(); result = statement.executeQuery(query); return result; } /** * Executes a query with result. TODO: Correct javadocs * @param query, the SQL query */ public boolean updateQuery(String query) throws SQLException { boolean result; Statement statement = connection.createStatement(); result = statement.execute(query); return result; } /** * Executes a query with result. * @param query, the SQL query */ public ResultSet insertQuery(String query) throws SQLException { ResultSet result = null; Statement statement = connection.createStatement(); statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS); result = statement.getGeneratedKeys(); return result; } }