package database.sql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DatabaseConnection { private String host, database, user, pass; private Connection connection = null; private Statement statement = null; private String type; // Ziggy: TODO DatabaseType enumeration public DatabaseConnection(String host, String database, String user, String pass, String type) { this.host = host; this.database = database; this.user = user; this.pass = pass; this.type = type; } public boolean connect() { ResultSet resultSet = null; String connectionStr = "jdbc:" + type + "://" + host + "/" + database + (type.equals("mysql") ? "?autoReconnect=true" : "") + user + pass; try { connection = DriverManager.getConnection(connectionStr); statement = connection.createStatement(); resultSet = statement.executeQuery("SELECT VERSION()"); return true; } catch (SQLException e) { e.printStackTrace(); } finally { try { if (resultSet != null) resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } return false; } public void close() { try { if (statement != null) statement.close(); if (connection != null) connection.close(); } catch (SQLException e) { e.printStackTrace(); } } public ResultSet query(String query) { if (statement == null) return null; try { synchronized (statement) { return statement.executeQuery(query); } } catch (SQLException e) { e.printStackTrace(); } return null; } public PreparedStatement preparedStatement(String statement) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(statement); try { //preparedStatement.setQueryTimeout(30); } catch (Exception e) { e.printStackTrace(); } return preparedStatement; } }