mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
refactor mapping
This commit is contained in:
@@ -10,6 +10,8 @@ public class MappingContext {
|
||||
private boolean generateAlias = false;
|
||||
private boolean explainAllColumnToList = false;
|
||||
|
||||
private Entity defaultEntity;
|
||||
|
||||
public MappingContext(){
|
||||
this(new ArrayList<Object>());
|
||||
}
|
||||
@@ -42,4 +44,12 @@ public class MappingContext {
|
||||
this.explainAllColumnToList = explainAllColumnToList;
|
||||
}
|
||||
|
||||
public Entity getDefaultEntity() {
|
||||
return defaultEntity;
|
||||
}
|
||||
|
||||
public void setDefaultEntity(Entity defaultEntity) {
|
||||
this.defaultEntity = defaultEntity;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -111,8 +111,8 @@ public class MappingEngine {
|
||||
return toSQL(stmt);
|
||||
}
|
||||
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(String sql) {
|
||||
return provider.explainToSelectSQLObject(this, sql);
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(String sql, MappingContext context) {
|
||||
return provider.explainToSelectSQLObject(this, sql, context);
|
||||
}
|
||||
|
||||
public String explainToSelectSQL(String sql) {
|
||||
@@ -124,7 +124,7 @@ public class MappingEngine {
|
||||
}
|
||||
|
||||
public String explainToSelectSQL(String sql, MappingContext context) {
|
||||
SQLSelectQueryBlock query = explainToSelectSQLObject(sql);
|
||||
SQLSelectQueryBlock query = explainToSelectSQLObject(sql, context);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
query.accept(visitor);
|
||||
@@ -137,9 +137,9 @@ public class MappingEngine {
|
||||
public void afterResole(MappingVisitor visitor) {
|
||||
|
||||
}
|
||||
|
||||
public SQLDeleteStatement explainToDeleteSQLObject(String sql) {
|
||||
return provider.explainToDeleteSQLObject(this, sql);
|
||||
|
||||
public SQLDeleteStatement explainToDeleteSQLObject(String sql, MappingContext context) {
|
||||
return provider.explainToDeleteSQLObject(this, sql, context);
|
||||
}
|
||||
|
||||
public String explainToDeleteSQL(String sql) {
|
||||
@@ -147,7 +147,7 @@ public class MappingEngine {
|
||||
}
|
||||
|
||||
public String explainToDeleteSQL(String sql, MappingContext context) {
|
||||
SQLDeleteStatement stmt = explainToDeleteSQLObject(sql);
|
||||
SQLDeleteStatement stmt = explainToDeleteSQLObject(sql, context);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
@@ -165,8 +165,8 @@ public class MappingEngine {
|
||||
return property.getDbColumnName();
|
||||
}
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(String sql) {
|
||||
return provider.explainToUpdateSQLObject(this, sql);
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(String sql, MappingContext context) {
|
||||
return provider.explainToUpdateSQLObject(this, sql, context);
|
||||
}
|
||||
|
||||
public String explainToUpdateSQL(String sql) {
|
||||
@@ -174,7 +174,7 @@ public class MappingEngine {
|
||||
}
|
||||
|
||||
public String explainToUpdateSQL(String sql, MappingContext context) {
|
||||
SQLUpdateStatement stmt = explainToUpdateSQLObject(sql);
|
||||
SQLUpdateStatement stmt = explainToUpdateSQLObject(sql, context);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
@@ -184,8 +184,8 @@ public class MappingEngine {
|
||||
return toSQL(stmt);
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(String sql) {
|
||||
return provider.explainToInsertSQLObject(this, sql);
|
||||
public SQLInsertStatement explainToInsertSQLObject(String sql, MappingContext context) {
|
||||
return provider.explainToInsertSQLObject(this, sql, context);
|
||||
}
|
||||
|
||||
public String explainToInsertSQL(String sql) {
|
||||
@@ -193,7 +193,7 @@ public class MappingEngine {
|
||||
}
|
||||
|
||||
public String explainToInsertSQL(String sql, MappingContext context) {
|
||||
SQLInsertStatement stmt = explainToInsertSQLObject(sql);
|
||||
SQLInsertStatement stmt = explainToInsertSQLObject(sql, context);
|
||||
|
||||
MappingVisitor visitor = this.createMappingVisitor(context);
|
||||
stmt.accept(visitor);
|
||||
@@ -229,35 +229,51 @@ public class MappingEngine {
|
||||
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
|
||||
public List<Map<String, Object>> select(Connection conn, String sql, List<Object> parameters) throws SQLException {
|
||||
SQLSelectQueryBlock sqlObject = this.explainToSelectSQLObject(sql);
|
||||
exportParameters(sqlObject, parameters);
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
return JdbcUtils.executeQuery(conn, rawSql, parameters);
|
||||
return select(conn, sql, new MappingContext(parameters));
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> select(Connection conn, String sql, MappingContext context) throws SQLException {
|
||||
SQLSelectQueryBlock sqlObject = this.explainToSelectSQLObject(sql, context);
|
||||
exportParameters(sqlObject, context.getParameters());
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
return JdbcUtils.executeQuery(conn, rawSql, context.getParameters());
|
||||
}
|
||||
|
||||
public int delete(Connection conn, String sql, List<Object> parameters) throws SQLException {
|
||||
SQLDeleteStatement sqlObject = this.explainToDeleteSQLObject(sql);
|
||||
exportParameters(sqlObject, parameters);
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
int updateCount = JdbcUtils.executeUpdate(conn, rawSql, parameters);
|
||||
return updateCount;
|
||||
return delete(conn, sql, new MappingContext(parameters));
|
||||
}
|
||||
|
||||
public int delete(Connection conn, String sql, MappingContext context) throws SQLException {
|
||||
SQLDeleteStatement sqlObject = this.explainToDeleteSQLObject(sql, context);
|
||||
exportParameters(sqlObject, context.getParameters());
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
int updateCount = JdbcUtils.executeUpdate(conn, rawSql, context.getParameters());
|
||||
return updateCount;
|
||||
}
|
||||
|
||||
public int update(Connection conn, String sql, List<Object> parameters) throws SQLException {
|
||||
SQLUpdateStatement sqlObject = this.explainToUpdateSQLObject(sql);
|
||||
exportParameters(sqlObject, parameters);
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
int updateCount = JdbcUtils.executeUpdate(conn, rawSql, parameters);
|
||||
return updateCount;
|
||||
return update(conn, sql, new MappingContext(parameters));
|
||||
}
|
||||
|
||||
public void insert(Connection conn, String sql, List<Object> parameters) throws SQLException {
|
||||
SQLInsertStatement sqlObject = this.explainToInsertSQLObject(sql);
|
||||
exportParameters(sqlObject, parameters);
|
||||
public int update(Connection conn, String sql, MappingContext context) throws SQLException {
|
||||
SQLUpdateStatement sqlObject = this.explainToUpdateSQLObject(sql, context);
|
||||
exportParameters(sqlObject, context.getParameters());
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
JdbcUtils.execute(conn, rawSql, parameters);
|
||||
int updateCount = JdbcUtils.executeUpdate(conn, rawSql, context.getParameters());
|
||||
return updateCount;
|
||||
}
|
||||
|
||||
public void insert(Connection conn, String sql, List<Object> parameters) throws SQLException {
|
||||
insert(conn, sql, new MappingContext(parameters));
|
||||
}
|
||||
|
||||
public void insert(Connection conn, String sql, MappingContext context) throws SQLException {
|
||||
SQLInsertStatement sqlObject = this.explainToInsertSQLObject(sql, context);
|
||||
exportParameters(sqlObject, context.getParameters());
|
||||
String rawSql = this.toSQL(sqlObject);
|
||||
JdbcUtils.execute(conn, rawSql, context.getParameters());
|
||||
}
|
||||
|
||||
public Connection getConnection() throws SQLException {
|
||||
|
||||
@@ -37,7 +37,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
return new SQLServerOutputVisitor(out);
|
||||
}
|
||||
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
SQLServerSelectParser selectParser = new SQLServerSelectParser(sql);
|
||||
SQLServerSelectQueryBlock query = (SQLServerSelectQueryBlock) selectParser.query();
|
||||
|
||||
@@ -60,7 +60,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
return query;
|
||||
}
|
||||
|
||||
public SQLDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLDeleteStatement stmt = parser.parseDeleteStatement();
|
||||
|
||||
@@ -69,7 +69,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLUpdateStatement stmt = parser.parseUpdateStatement();
|
||||
|
||||
@@ -78,7 +78,7 @@ public class MSSQLServerMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
SQLServerStatementParser parser = new SQLServerStatementParser(sql);
|
||||
SQLInsertStatement stmt = (SQLInsertStatement) parser.parseInsert();
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@ public interface MappingProvider {
|
||||
|
||||
List<SQLStatement> explain(MappingEngine engine, String sql);
|
||||
|
||||
SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql);
|
||||
SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql, MappingContext context);
|
||||
|
||||
SQLDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql);
|
||||
SQLDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql, MappingContext context);
|
||||
|
||||
SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql);
|
||||
SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql, MappingContext context);
|
||||
|
||||
SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql);
|
||||
SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql, MappingContext context);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
return new MySqlOutputVisitor(out);
|
||||
}
|
||||
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
MySqlSelectParser selectParser = new MySqlSelectParser(sql);
|
||||
MySqlSelectQueryBlock query = (MySqlSelectQueryBlock) selectParser.query();
|
||||
|
||||
@@ -60,7 +60,7 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
return query;
|
||||
}
|
||||
|
||||
public MySqlDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql) {
|
||||
public MySqlDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
|
||||
MySqlDeleteStatement stmt = parser.parseDeleteStatement();
|
||||
@@ -69,7 +69,7 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLUpdateStatement stmt = parser.parseUpdateStatement();
|
||||
|
||||
@@ -78,7 +78,7 @@ public class MySqlMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
MySqlStatementParser parser = new MySqlStatementParser(sql);
|
||||
SQLInsertStatement stmt = (SQLInsertStatement) parser.parseInsert();
|
||||
|
||||
|
||||
@@ -34,14 +34,14 @@ public class OracleMappingProvider implements MappingProvider {
|
||||
return new OracleOutputVisitor(out, false);
|
||||
}
|
||||
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLSelectQueryBlock explainToSelectSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
OracleSelectParser selectParser = new OracleSelectParser(sql);
|
||||
OracleSelectQueryBlock query = (OracleSelectQueryBlock) selectParser.query();
|
||||
|
||||
return query;
|
||||
}
|
||||
|
||||
public OracleDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql) {
|
||||
public OracleDeleteStatement explainToDeleteSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
OracleDeleteStatement stmt = parser.parseDeleteStatement();
|
||||
|
||||
@@ -50,7 +50,7 @@ public class OracleMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLUpdateStatement explainToUpdateSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
SQLUpdateStatement stmt = parser.parseUpdateStatement();
|
||||
|
||||
@@ -59,7 +59,7 @@ public class OracleMappingProvider implements MappingProvider {
|
||||
return stmt;
|
||||
}
|
||||
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql) {
|
||||
public SQLInsertStatement explainToInsertSQLObject(MappingEngine engine, String sql, MappingContext context) {
|
||||
OracleStatementParser parser = new OracleStatementParser(sql);
|
||||
SQLInsertStatement stmt = (SQLInsertStatement) parser.parseInsert();
|
||||
MappingVisitorUtils.setTableSource(engine, stmt);
|
||||
|
||||
Reference in New Issue
Block a user