<select id="executeSql" resultType="map">
${_parameter}
</select>
sqlSession.selectList("executeSql", "select * from sysuser where enabled = 1");
List<Map> executeSql(String sql);
xxMapper.executeSql("select * from sysuser where enabled = 1");
select * from sysuser
where enabled = #{enabled}
and userName like concat('%',#{userName},'%')
<select id="executeSql" resultType="map">
${sql}
</select>
List<Map> executeSql(Map map);
Map map = new HashMap();
//这里的 sql 对应 XML 中的 ${sql}
map.put("sql", "select * from sysuser "
+ " where enabled = #{enabled} "
+ " and userName like concat('%',#{userName},'%')");
//#{enabled}
map.put("enabled", 1);
//#{userName}
map.put("userName", "admin");
//接口方式调用
List<Map> list = xxMapper.executeSql(map);
//sqlSession方式调用
sqlSession.selectList("executeSql", map);
@Override
public BoundSql getBoundSql(Object parameterObject) {
DynamicContext context = new DynamicContext(configuration, parameterObject);
rootSqlNode.apply(context);
SqlSourceBuilder sqlSourceParser = new SqlSourceBuilder(configuration);
Class < ?>parameterType =
parameterObject == null ? Object.class: parameterObject.getClass();
SqlSource sqlSource = sqlSourceParser.parse(context.getSql(),
parameterType, context.getBindings());
BoundSql boundSql = sqlSource.getBoundSql(parameterObject);
for (Map.Entry < String, Object > entry: context.getBindings().entrySet()) {
boundSql.setAdditionalParameter(entry.getKey(), entry.getValue());
}
return boundSql;
}
sqlSourceParser.parse(context.getSql(), parameterType, context.getBindings());
select * from sysuser
where 1 = 1
<#if enabled??>
enabled = #{enabled}
</#if>
<#if userName?? && userName != ''>
and userName like concat('%',#{userName},'%')
</#if>
select * from sysuser
where 1 = 1
<#if enabled??>
enabled = #{enabled}
</#if>
<#if userName?? && userName != ''>
and userName like '%${userName}%'
</#if>
//#{enabled}
map.put("enabled", 1);
//#{userName}
map.put("userName", "admin");
//这里的 sql 对应 XML 中的 ${sql}
String sql = "上面两个复杂SQL中的一个";
//使用Freemarker处理sql
sql = processSqlByFreemarker(sql, map);
//将处理后的sql放到map中
map.put("sql", "select * from sysuser "
+ " where enabled = #{enabled} "
+ " and userName like concat('%',#{userName},'%')");
//执行方法
List<Map> list = xxMapper.executeSql(map);
map.put("class", "tk.mybatis.model.SysUser");
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有