19 |
19 |
20 import info.globalcode.sql.dk.*; |
20 import info.globalcode.sql.dk.*; |
21 import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_USER; |
21 import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_USER; |
22 import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_PASSWORD; |
22 import static info.globalcode.sql.dk.DatabaseConnection.JDBC_PROPERTY_PASSWORD; |
23 import java.sql.Connection; |
23 import java.sql.Connection; |
|
24 import java.sql.Driver; |
24 import java.sql.DriverManager; |
25 import java.sql.DriverManager; |
25 import java.sql.SQLException; |
26 import java.sql.SQLException; |
26 import java.util.logging.Level; |
27 import java.util.logging.Level; |
27 import java.util.logging.Logger; |
28 import java.util.logging.Logger; |
28 import javax.xml.bind.JAXBContext; |
29 import javax.xml.bind.JAXBContext; |
64 credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName())); |
65 credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName())); |
65 credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword())); |
66 credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword())); |
66 credentials.setDefaults(databaseDefinition.getProperties()); |
67 credentials.setDefaults(databaseDefinition.getProperties()); |
67 properties.setDefaults(credentials); |
68 properties.setDefaults(credentials); |
68 java.util.Properties javaProperties = properties.getJavaProperties(); |
69 java.util.Properties javaProperties = properties.getJavaProperties(); |
69 return DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties); |
70 |
|
71 String driverClassName = databaseDefinition.getDriver(); |
|
72 final String url = databaseDefinition.getUrl(); |
|
73 if (driverClassName == null) { |
|
74 log.log(Level.FINE, "Using DriverManager to create connection for „{0}“", url); |
|
75 return DriverManager.getConnection(url, javaProperties); |
|
76 } else { |
|
77 log.log(Level.FINE, "Using custom Driver „{0}“ to create connection for „{1}“", new Object[]{driverClassName, url}); |
|
78 try { |
|
79 Class<Driver> driverClass = (Class<Driver>) Class.forName(driverClassName); |
|
80 Driver driver = driverClass.newInstance(); |
|
81 return driver.connect(url, javaProperties); |
|
82 } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) { |
|
83 throw new SQLException("Unable to connect usig specific driver: " + driverClassName, e); |
|
84 } |
|
85 } |
70 } |
86 } |
71 |
87 |
72 } |
88 } |