diff -r 862d0a8747ac -r a32bfcbdee51 java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java --- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Sat May 16 23:58:06 2015 +0200 +++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Sun May 17 00:27:56 2015 +0200 @@ -22,14 +22,13 @@ import info.globalcode.sql.dk.batch.Batch; import info.globalcode.sql.dk.batch.BatchException; import info.globalcode.sql.dk.configuration.DatabaseDefinition; +import info.globalcode.sql.dk.configuration.Loader; import info.globalcode.sql.dk.configuration.Properties; -import info.globalcode.sql.dk.configuration.Property; import info.globalcode.sql.dk.formatting.ColumnsHeader; import info.globalcode.sql.dk.formatting.Formatter; import info.globalcode.sql.dk.jmx.ConnectionManagement; import info.globalcode.sql.dk.jmx.ConnectionManagement.COUNTER; import java.sql.Connection; -import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -49,7 +48,7 @@ public class DatabaseConnection implements AutoCloseable { private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName()); - private static final String JDBC_PROPERTY_USER = "user"; + public static final String JDBC_PROPERTY_USER = "user"; public static final String JDBC_PROPERTY_PASSWORD = "password"; private final DatabaseDefinition databaseDefinition; private final Connection connection; @@ -71,19 +70,7 @@ this.databaseDefinition = databaseDefinition; this.properties = properties; this.connectionMBean = connectionMBean; - - if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) { - log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!"); - } - - Properties credentials = new Properties(); - credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName())); - credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword())); - credentials.setDefaults(databaseDefinition.getProperties()); - properties.setDefaults(credentials); - java.util.Properties javaProperties = properties.getJavaProperties(); - - connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties); + this.connection = Loader.jdbcConnect(databaseDefinition, properties); } public void executeQuery(SQLCommand sqlCommand, Formatter formatter) throws SQLException { @@ -116,7 +103,7 @@ private void processCommand(SQLCommand sqlCommand, Formatter formatter) throws SQLException { incrementCounter(connectionMBean, COUNTER.COMMAND); resetCounter(connectionMBean, COUNTER.RECORD_CURRENT); - + try (PreparedStatement ps = sqlCommand.prepareStatement(connection)) { log.log(Level.FINE, "Statement prepared"); sqlCommand.parametrize(ps); @@ -157,7 +144,7 @@ while (rs.next()) { incrementCounter(connectionMBean, COUNTER.RECORD_CURRENT); incrementCounter(connectionMBean, COUNTER.RECORD_TOTAL); - + formatter.writeStartRow(); for (int i = 1; i <= columnCount; i++) {