01: package org.openi.jdbc;
02:
03: import java.sql.Connection;
04:
05: import org.apache.log4j.Logger;
06: import org.openi.jdbc.impl.SqlProviderMicrosoft;
07: import org.openi.jdbc.impl.SqlProviderMySQL;
08: import org.openi.jdbc.impl.SqlProviderPostgreSQL;
09:
10: public class SqlProviderFactory {
11: private static SqlProviderFactory theOne = new SqlProviderFactory();
12: private static Logger logger = Logger
13: .getLogger(SqlProviderFactory.class);
14:
15: private SqlProviderFactory() {
16:
17: }
18:
19: public static SqlProvider create(Connection conn) {
20: String databaseName = null;
21: try {
22: databaseName = conn.getMetaData().getDatabaseProductName();
23: logger.debug("database name: " + databaseName);
24: } catch (Exception e) {
25: logger.error(e);
26: }
27:
28: if (databaseName.startsWith("Microsoft")) {
29: return new SqlProviderMicrosoft();
30: } else if (databaseName.startsWith("MySQL")) {
31: return new SqlProviderMySQL();
32: } else if (databaseName.startsWith("PostgreSQL")) {
33: return new SqlProviderPostgreSQL();
34: } else {
35: return new SqlProviderMicrosoft();
36: }
37: }
38:
39: }
|