值得注意的ibatis动态sql语法格式
一、Ibatis常用动态sql语法,简单粗暴用一例子
<select id="iBatisSelectList" parameterClass="java.util.HashMap" resultMap="BeanFieldMap">
SELECT
Column_list
FROM
Table_name
WHERE 1=1
<isNotEmpty prepend="and" property="areacode">
areaCodes like concat('%', #areacode#, '%')
</isNotEmpty>
<isNotEmpty property="types" prepend="and">
<iterate property="types" open="(" conjunction="or" close=")">
type like concat('%',#types[]#,'%')
</iterate>
</isNotEmpty>
<isNotEmpty property="datestart" prepend="and">
inputDate <![CDATA[>]]> #datestart#
</isNotEmpty>
<isNotEmpty property="dateend" prepend="and">
inputDate <![CDATA[<]]> #dateend#
</isNotEmpty>
<isEqual property="order" compareValue="asc">
order by inputDate asc limit #skipCount#,#pageSize#
</isEqual>
<isEqual property="order" compareValue="desc">
order by inputDate desc limit #skipCount#,#pageSize#
</isEqual>
</select>
其中java中对应的
public List<T> selectLis(String areacode,String type,String datestart,String dateend,Integer skipCount,String order,Integer pageSize){
Map<String, Object> params = new HashMap<String, Object>();
params.put("areacode", areacode);
if(type.indexOf(",")>=0){ //type字符串多个以,隔开
String[] types = type.split(",");
params.put("types", types);
}else{
String[] types = {type};
params.put("types", types);
}
params.put("skipCount", skipCount.toString());
params.put("pageSize", pageSize.toString());
params.put("datestart", datestart);
params.put("dateend", dateend);
params.put("order", order);
logger.info("输入参数:{}", params);
try {
return sqlMapClient.queryForList("iBatisSelectList", params);
} catch (SQLException e) {
logger.info("参数{},异常{}", params, e.getStackTrace());
}
}
这个例子涉及到like语句(areacode)用法,集合语句(type)用法,特殊字符用法等,注意格式!!!
最新文章
- Mac下安装Matlab R2015b
- 从客户端(txtContent=";<;p>;1<;/p>;";)中检测到有潜在危险的 Request.Form 值
- Ajax调用SpringMVC ModelAndView 无返回情况
- SQL Server中行列转换
- 信号之system函数
- HDU-1963
- application&#160;windows&#160;are&#160;expected&#160;to&#160;have&#160;a&#160;root&#160;view&#160;controller错误
- Office OpenXML-Excel(一)
- THOUGHTS: programming in linux... with third_party open sources... methods
- C# MongoDB 查询,分组,聚合,排序,条件,分页
- 浅谈“Mysql”的基础操作语句
- ScalaPB(0): 找寻合适的内部系统微服务集成工具
- [Swift]LeetCode887. 鸡蛋掉落 | Super Egg Drop
- Python——字符转换(int , bool ,str)
- pip安装问题
- python orm框架
- x264阅读记录-3
- PHP_CodeSniffer 安装和phpstorm配置
- 2.28 查看webdriver API
- spring-boot-mail