package javafun.utils.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
import javafun.utils.logging.Logger;
import org.mysql.ConnectionManager;
/**
* @author ALexander K
* Singleton that returns a java.sql.Connection object.
*/
public class JDBCConnection {
private JDBCConnection() {
}
public static final Connection getDatabaseInstance(String JDBCDriver, String URL, String user, String password)
throws SQLException {
try {
Class.forName(JDBCDriver);
} catch (ClassNotFoundException e) {
Logger.error("No Class Found " + e.getMessage());
throw new SQLException(e.getMessage());
}
String params = "";
// Add ConnectorJ configuration properties
if (URL.indexOf("useOldAliasMetadataBehavior=true") < 0) {
if (URL.indexOf("?") < 0) {
params += "?";
} else {
params += "&";
}
params += "useOldAliasMetadataBehavior=true";
}
if (URL.indexOf("zeroDateTimeBehavior=convertToNull") < 0) {
if (URL.indexOf("?") < 0 && params.indexOf("?") < 0) {
params += "?";
} else {
params += "&";
}
params += "zeroDateTimeBehavior=convertToNull";
}
URL += params;
Connection c = null;
try {
c = ConnectionManager.getConnection(URL, user, password);
} catch (SQLException e) {
Logger.error("General error getting connection from JDBCConnection " + e.getMessage());
e.printStackTrace();
throw e;
}
return c;
}
}