java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
branchv_0
changeset 192 a32bfcbdee51
parent 179 236332caeb29
child 229 7699133f5a01
--- 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++) {