mirror of
https://github.com/querydsl/querydsl.git
synced 2026-06-13 21:01:01 +08:00
Merge pull request #1825 from querydsl/sqltemplatesregistry
Use SQLTemplates.Builder in SQLTemplatesRegistry
This commit is contained in:
commit
bcaa92c283
@ -21,24 +21,6 @@ import java.sql.SQLException;
|
||||
*/
|
||||
public class SQLTemplatesRegistry {
|
||||
|
||||
private final SQLTemplates generic = SQLTemplates.DEFAULT;
|
||||
|
||||
private final SQLTemplates cubrid = new CUBRIDTemplates();
|
||||
private final SQLTemplates derby = new DerbyTemplates();
|
||||
private final SQLTemplates firebird = new FirebirdTemplates();
|
||||
private final SQLTemplates h2 = new H2Templates();
|
||||
private final SQLTemplates hsqldb = new HSQLDBTemplates();
|
||||
private final SQLTemplates mysql = new MySQLTemplates();
|
||||
private final SQLTemplates oracle = new OracleTemplates();
|
||||
private final SQLTemplates postgresql = new PostgreSQLTemplates();
|
||||
private final SQLTemplates sqlite = new SQLiteTemplates();
|
||||
private final SQLTemplates teradata = new TeradataTemplates();
|
||||
|
||||
private final SQLTemplates sqlserver = new SQLServerTemplates();
|
||||
private final SQLTemplates sqlserver2005 = new SQLServer2005Templates();
|
||||
private final SQLTemplates sqlserver2008 = new SQLServer2008Templates();
|
||||
private final SQLTemplates sqlserver2012 = new SQLServer2012Templates();
|
||||
|
||||
/**
|
||||
* Get the SQLTemplates instance that matches best the SQL engine of the
|
||||
* given database metadata
|
||||
@ -48,50 +30,55 @@ public class SQLTemplatesRegistry {
|
||||
* @throws SQLException
|
||||
*/
|
||||
public SQLTemplates getTemplates(DatabaseMetaData md) throws SQLException {
|
||||
return getBuilder(md).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a SQLTemplates.Builder instance that matches best the SQL engine of the
|
||||
* given database metadata
|
||||
*
|
||||
* @param md database metadata
|
||||
* @return templates
|
||||
* @throws SQLException
|
||||
*/
|
||||
public SQLTemplates.Builder getBuilder(DatabaseMetaData md) throws SQLException {
|
||||
String name = md.getDatabaseProductName().toLowerCase();
|
||||
if (name.equals("cubrid")) {
|
||||
return cubrid;
|
||||
}
|
||||
if (name.equals("apache derby")) {
|
||||
return derby;
|
||||
}
|
||||
if (name.startsWith("firebird")) {
|
||||
return firebird;
|
||||
}
|
||||
if (name.equals("h2")) {
|
||||
return h2;
|
||||
}
|
||||
if (name.equals("hsql")) {
|
||||
return hsqldb;
|
||||
}
|
||||
if (name.equals("mysql")) {
|
||||
return mysql;
|
||||
}
|
||||
if (name.equals("oracle")) {
|
||||
return oracle;
|
||||
}
|
||||
if (name.equals("postgresql")) {
|
||||
return postgresql;
|
||||
}
|
||||
if (name.equals("sqlite")) {
|
||||
return sqlite;
|
||||
}
|
||||
if (name.startsWith("teradata")) {
|
||||
return teradata;
|
||||
}
|
||||
|
||||
// sqlserver
|
||||
if (name.equals("microsoft sql server")) {
|
||||
return CUBRIDTemplates.builder();
|
||||
} else if (name.equals("apache derby")) {
|
||||
return DerbyTemplates.builder();
|
||||
} else if (name.startsWith("firebird")) {
|
||||
return FirebirdTemplates.builder();
|
||||
} else if (name.equals("h2")) {
|
||||
return H2Templates.builder();
|
||||
} else if (name.equals("hsql")) {
|
||||
return HSQLDBTemplates.builder();
|
||||
} else if (name.equals("mysql")) {
|
||||
return MySQLTemplates.builder();
|
||||
} else if (name.equals("oracle")) {
|
||||
return OracleTemplates.builder();
|
||||
} else if (name.equals("postgresql")) {
|
||||
return PostgreSQLTemplates.builder();
|
||||
} else if (name.equals("sqlite")) {
|
||||
return SQLiteTemplates.builder();
|
||||
} else if (name.startsWith("teradata")) {
|
||||
return TeradataTemplates.builder();
|
||||
} else if (name.equals("microsoft sql server")) {
|
||||
switch (md.getDatabaseMajorVersion()) {
|
||||
case 12:
|
||||
case 11: return sqlserver2012;
|
||||
case 10: return sqlserver2008;
|
||||
case 9: return sqlserver2005;
|
||||
default: return sqlserver;
|
||||
case 11: return SQLServer2012Templates.builder();
|
||||
case 10: return SQLServer2008Templates.builder();
|
||||
case 9: return SQLServer2005Templates.builder();
|
||||
default: return SQLServerTemplates.builder();
|
||||
}
|
||||
} else {
|
||||
return new SQLTemplates.Builder() {
|
||||
@Override
|
||||
protected SQLTemplates build(char escape, boolean quote) {
|
||||
return new SQLTemplates(Keywords.DEFAULT, "\"", escape, quote);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return generic;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user