带表达式的SQL配置如下:
select * from t_sqlapi where minId=#{minId}
and maxId=#{maxId}
and 1==1
and name=#{name}
参数如下:
Map map = new HashMap();
map.put("minId", 100);
map.put("maxId", 500);
map.put("name", "itkey");
期待的转换结果如下:
select * from t_sqlapi where minId=? and maxId=? and 1==1 and name=?
------参数:------ 100,500,itkey
转换思路 第1步:text转dom对象把整个带表达式的sql脚本,通过dom4j工具转成dom对象方便后面数据的解析
第2步:解析
标签
标签中的表达式test='maxId !=null’使用OGNL表达式工具解析其内容。如果表达式的结果是true,则
标签的内部的子元素则生。
#{xxx}
为占位符?
需要把变量的部分#{xxx}
,替换成sql中的占位符?
,然后把参数的值按变量摆放的顺序传参。