public final class MapperConfigBuilder extends Object
自定义基接口配置构建器.
灵活配置构建器, 满足喜欢捣腾的用户
理论上这个类该写在 MapperConfig 文件里.
但为了清晰理解代码, 独立了出来.
create time : 2017-04-27 15:28| 构造器和说明 |
|---|
MapperConfigBuilder() |
| 限定符和类型 | 方法和说明 |
|---|---|
MapperConfigBuilder |
addAmi(String methodName,
MapperInvoke ami)
Ami: 全名 ApiMapperInvoke, 由于感觉这个名字太长所以简写了.
|
MapperInvoke |
getAmi(String methodName)
获取方法对应的 Ami 处理类
|
MapperConfigBuilder |
setMethodDescBuilder(MethodDescBuilder methodDescBuilder) |
public MapperInvoke getAmi(String methodName)
methodName - 方法名public MapperConfigBuilder setMethodDescBuilder(MethodDescBuilder methodDescBuilder)
methodDescBuilder - 自定义创建 MethodDescpublic MapperConfigBuilder addAmi(String methodName, MapperInvoke ami)
Ami: 全名 ApiMapperInvoke, 由于感觉这个名字太长所以简写了. 此方法用户可以给自定义的基接口扩展方法. 里面已经内置BaseMapper的所有方法, 用户只需要在自定义的基接口上定义与BaseMapper相同的方法名就可以使用
假设你定义了一个基接口名字: MyMapper
示例:
addAmi("selects", new AllAmi());
在用户调用 MyMapper.selects(); 就能得到表的所有数据. 因为selects方法使用 AllAmi() 来处理.
这个示例是查询表的所有id列表.(自定义Ami代码)
builder.addAmi("selectIds", new MapperInvoke() {
public Object call(SQLManager sm, Class entityClass, String sqlId, Method m, Object[] args) {
String tableName = sm.getNc().getTableName(entityClass);
TableDesc tableDesc = sm.getMetaDataManager().getTable(tableName);
StringBuilder builder = new StringBuilder("select id from ").append(tableDesc.getName());
return sm.execute(new SQLReady(builder.toString()), Integer.class);
}
});
methodName - 方法名 (自定义)ami - MapperInvoke 处理该方法名的类Copyright © 2019. All rights reserved.