1 16 package org.outerj.daisy.install; 17 18 import java.util.Map ; 19 import java.util.HashMap ; 20 import java.sql.Connection ; 21 import java.sql.DatabaseMetaData ; 22 23 public class DatabaseSpecificsFactory { 24 private static Map DATABASE_SPECIFICS_MAP; 25 static { 26 DATABASE_SPECIFICS_MAP = new HashMap (); 27 DATABASE_SPECIFICS_MAP.put("MySQL", new MySQLDatabaseSpecifics()); 28 DATABASE_SPECIFICS_MAP.put("PostgreSQL", new PostgresqlDatabaseSpecifics()); 29 DATABASE_SPECIFICS_MAP.put("Oracle", new OracleDatabaseSpecifics()); 30 } 31 32 public static DatabaseSpecifics getDatabaseSpecifics(Connection conn) throws Exception { 33 DatabaseMetaData dbMeataData = conn.getMetaData(); 34 String dbProductName = dbMeataData.getDatabaseProductName(); 35 DatabaseSpecifics dbSpecifics = (DatabaseSpecifics)DATABASE_SPECIFICS_MAP.get(dbProductName); 36 if (dbSpecifics == null) { 37 throw new Exception ("Unsupported database: \"" + dbProductName + "\"."); 38 } 39 return dbSpecifics; 40 } 41 } 42 | Popular Tags |