java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
branchv_0
changeset 108 d06d90b28217
parent 107 8189a4a28cd8
child 142 da1e38386d84
equal deleted inserted replaced
107:8189a4a28cd8 108:d06d90b28217
    37  * @author Ing. František Kučera (frantovo.cz)
    37  * @author Ing. František Kučera (frantovo.cz)
    38  */
    38  */
    39 public class DatabaseConnection implements AutoCloseable {
    39 public class DatabaseConnection implements AutoCloseable {
    40 
    40 
    41 	private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName());
    41 	private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName());
       
    42 	private static final String JDBC_PROPERTY_USER = "user";
       
    43 	public static final String JDBC_PROPERTY_PASSWORD = "password";
    42 	private DatabaseDefinition databaseDefinition;
    44 	private DatabaseDefinition databaseDefinition;
    43 	private Connection connection;
    45 	private Connection connection;
    44 	private Properties properties;
    46 	private Properties properties;
    45 
    47 
    46 	public DatabaseConnection(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException {
    48 	public DatabaseConnection(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException {
    47 		this.databaseDefinition = databaseDefinition;
    49 		this.databaseDefinition = databaseDefinition;
    48 		this.properties = properties;
    50 		this.properties = properties;
    49 
    51 
       
    52 		if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) {
       
    53 			log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!");
       
    54 		}
       
    55 
    50 		Properties credentials = new Properties();
    56 		Properties credentials = new Properties();
    51 		credentials.add(new Property("user", databaseDefinition.getUserName()));
    57 		credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName()));
    52 		credentials.add(new Property("password", databaseDefinition.getPassword()));
    58 		credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword()));
    53 		credentials.setDefaults(databaseDefinition.getProperties());
    59 		credentials.setDefaults(databaseDefinition.getProperties());
    54 		properties.setDefaults(credentials);
    60 		properties.setDefaults(credentials);
    55 		java.util.Properties javaProperties = properties.getJavaProperties();
    61 		java.util.Properties javaProperties = properties.getJavaProperties();
    56 
    62 
    57 		connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties);
    63 		connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties);