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++) {