BoundSql
简介
从SqlSource
得到的处理了动态内容的真正的SQL。这个SQL可以有?占位符和一系列参数。
也可以是由动态语言(如loops,bind)创建的额外的参数。
源码
public class BoundSql {
private final String sql;
private final List<ParameterMapping> parameterMappings;
private final Object parameterObject;
private final Map<String, Object> additionalParameters;
private final MetaObject metaParameters;
public BoundSql(Configuration configuration, String sql, List<ParameterMapping> parameterMappings, Object parameterObject) {
this.sql = sql;
this.parameterMappings = parameterMappings;
this.parameterObject = parameterObject;
this.additionalParameters = new HashMap<String, Object>();
this.metaParameters = configuration.newMetaObject(additionalParameters);
}
public String getSql(){
return sql;
}
public List<ParameterMapping> getParameterMappings(){
return parameterMappings;
}
public Object getParameterObject(){
return parameterObject;
}
public boolean hasAdditionalParameter(String name){
String paramName = new PropertyTokenizer(name).getName();
return additionalParameters.containsKey(paramName);
}
public void setAdditionalParameter(String name, Object value) {
metaParameters.setValue(name, value);
}
public Object getAdditionalParameter(String name) {
return metaParameters.getValue(name);
}
}