值得注意的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)用法,特殊字符用法等,注意格式!!!
转载于:https://www.cnblogs.com/zhangyu1203/p/6233068.html
值得注意的ibatis动态sql语法格式相关推荐
- ibatis动态sql配置启动时提示:The content of elements must consist of well-formed character data......
ibatis动态sql配置启动时提示:The content of elements must consist of well-formed character data... 2012-07-18 ...
- oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...
PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...
- iBatis 动态SQL别名查询结果为Null问题
iBatis 动态SQL别名查询结果为Null问题 在项目中使用了iBatis,使用xml方便的维护SQL,清晰明了,偶然发现动态拼接的SQL语句在数据中执行很好的返回结果,而到了程序中总是有字段返回 ...
- 转:ibatis动态sql
直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问 ...
- MyBatis动态SQL语法详解(二)
文章目录 一.MyBatis查询返回 1.1.MyBatis查询返回对象 1.2.MyBatis查询返回list集合 1.3.MyBatis查询返回Map 1.4.MyBatis查询自定义结果映射规则 ...
- ibatis动态语句中的prepend
关于ibatis动态sql的prepend的属性,我们需要理解一下几点 select * from student <dynamic prepend="where"> ...
- oracle之动态sql
1.PLSQL内部能够正常运行DML(insert.update.delete)DQL(select)语句,如果运行DDL(create.truncate.drop等)需要动态sql执行. 2.动态s ...
- 学习SQL应知道的动态SQL语句基本语法
学习SQL应知道的动态SQL语句基本语法 1 .普通SQL语句可以用Exec执行 9Kp=A ' CdaFr1 eg: Select * from tableName Wsc+A:<&q ...
- Sql Server实用操作-动态sql语句基本语法
如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from tableNam ...
最新文章
- PIM-SM DR指定路由器以及 PIM-DM指定前转器的区别 【转自网络】
- 苹果雪豹操作系统正式版_Android 11 正式版发布!
- kafka直连方式消费多个topic
- php 数据相加,PHP数组合并之array_merge和数组相加
- C#线程系列讲座(5):同步技术之Monitor
- Linux常用命令及配置--简单
- cef linux 多线程模式,CEF3开发者系列之进程和线程
- visual studio粘贴html代码.会自行添加一些未知代码(自动格式化)
- Struts2 标签
- 自定义View在android2.3.3手机上正常运行 在android4.2.2手机上报空指针
- 精品软件试用及分享 屏幕录像专家注册版 附下载地址
- 计算机软件退税,软件企业2021增值税退税
- Mac Sublime Text设置中文
- unity 彩带粒子_unity游戏缤纷五彩纸屑粒子特效Confetti FX 1.0
- 差动变压器的振动测量实验 思考题
- python编写游戏测试机器人客户端(一)
- android手机怎么删除安装包,手机里的自带软件如何卸载
- JAVA学习基础部分
- 【数智化案例展】杭州市某区统计局——AIxRPA数字员工技术赋能新经济监测项目...
- Linux中的进程管理