java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
branchv_0
changeset 192 a32bfcbdee51
parent 179 236332caeb29
child 229 7699133f5a01
     1.1 --- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sat May 16 23:58:06 2015 +0200
     1.2 +++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java	Sun May 17 00:27:56 2015 +0200
     1.3 @@ -22,14 +22,13 @@
     1.4  import info.globalcode.sql.dk.batch.Batch;
     1.5  import info.globalcode.sql.dk.batch.BatchException;
     1.6  import info.globalcode.sql.dk.configuration.DatabaseDefinition;
     1.7 +import info.globalcode.sql.dk.configuration.Loader;
     1.8  import info.globalcode.sql.dk.configuration.Properties;
     1.9 -import info.globalcode.sql.dk.configuration.Property;
    1.10  import info.globalcode.sql.dk.formatting.ColumnsHeader;
    1.11  import info.globalcode.sql.dk.formatting.Formatter;
    1.12  import info.globalcode.sql.dk.jmx.ConnectionManagement;
    1.13  import info.globalcode.sql.dk.jmx.ConnectionManagement.COUNTER;
    1.14  import java.sql.Connection;
    1.15 -import java.sql.DriverManager;
    1.16  import java.sql.PreparedStatement;
    1.17  import java.sql.ResultSet;
    1.18  import java.sql.SQLException;
    1.19 @@ -49,7 +48,7 @@
    1.20  public class DatabaseConnection implements AutoCloseable {
    1.21  
    1.22  	private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName());
    1.23 -	private static final String JDBC_PROPERTY_USER = "user";
    1.24 +	public static final String JDBC_PROPERTY_USER = "user";
    1.25  	public static final String JDBC_PROPERTY_PASSWORD = "password";
    1.26  	private final DatabaseDefinition databaseDefinition;
    1.27  	private final Connection connection;
    1.28 @@ -71,19 +70,7 @@
    1.29  		this.databaseDefinition = databaseDefinition;
    1.30  		this.properties = properties;
    1.31  		this.connectionMBean = connectionMBean;
    1.32 -
    1.33 -		if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) {
    1.34 -			log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!");
    1.35 -		}
    1.36 -
    1.37 -		Properties credentials = new Properties();
    1.38 -		credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName()));
    1.39 -		credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword()));
    1.40 -		credentials.setDefaults(databaseDefinition.getProperties());
    1.41 -		properties.setDefaults(credentials);
    1.42 -		java.util.Properties javaProperties = properties.getJavaProperties();
    1.43 -
    1.44 -		connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties);
    1.45 +		this.connection = Loader.jdbcConnect(databaseDefinition, properties);
    1.46  	}
    1.47  
    1.48  	public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException {
    1.49 @@ -116,7 +103,7 @@
    1.50  	private void processCommand(SQLCommand sqlCommand, Formatter formatter) throws SQLException {
    1.51  		incrementCounter(connectionMBean, COUNTER.COMMAND);
    1.52  		resetCounter(connectionMBean, COUNTER.RECORD_CURRENT);
    1.53 -		
    1.54 +
    1.55  		try (PreparedStatement ps = sqlCommand.prepareStatement(connection)) {
    1.56  			log.log(Level.FINE, "Statement prepared");
    1.57  			sqlCommand.parametrize(ps);
    1.58 @@ -157,7 +144,7 @@
    1.59  		while (rs.next()) {
    1.60  			incrementCounter(connectionMBean, COUNTER.RECORD_CURRENT);
    1.61  			incrementCounter(connectionMBean, COUNTER.RECORD_TOTAL);
    1.62 -			
    1.63 +
    1.64  			formatter.writeStartRow();
    1.65  
    1.66  			for (int i = 1; i <= columnCount; i++) {