值得注意的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)用法,特殊字符用法等,注意格式!!!
值得注意的ibatis动态sql语法格式的更多相关文章
- 转:ibatis动态sql
转:ibatis动态sql 直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的 IF-ELSE条件语句和一连串 ...
- 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 ...
- IBATIS动态SQL(1)
转:IBATIS动态SQL 直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的 ...
- IBATIS动态SQL(转)
直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问题,I ...
- IBATIS动态SQL
转自:http://www.cnblogs.com/phoebus0501/archive/2011/05/16/2048126.html 直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值 ...
- ibatis 动态SQL
直接使用JDBC一个非常普遍的问题就是动态SQL.使用参数值.参数本身和数据列都是动态SQL,通常是非常困难的.典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接.对于这个问题,I ...
- MyBatis动态SQL语法
[注:摘自MyBatis官网 ] 1.动态SQL的元素: if choose (when, otherwise) trim (where, set) foreach bind 2.if语句: &l ...
- Spring mybatis源码篇章-动态SQL基础语法以及原理
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对m ...
- 动态SQL语句:定义(一)
文章系列 动态SQL语句:定义(一) 静态SQL与动态SQL 静态SQL:程序运行前,具有固定的形式和结构的SQL. 动态SQL:程序运行时,能够动态改变形式或结构的SQL. 一些思考和想法 在实际的 ...
随机推荐
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
- TODO:小程序开发过程之体验者
TODO:小程序开发过程之体验者 1. 小程序开发过程,先下载开发者并安装开发者工具,现在腾讯开放测试了,普通用户也可以登录开发者工具,如图普通用户登录为调试类型,但是只能建立无AppID的项目 如果 ...
- C# 条形码操作【源码下载】
本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...
- SQL Server-表表达式基础回顾(二十四)
前言 从这一节开始我们开始进入表表达式章节的学习,Microsoft SQL Server支持4种类型的表表达式:派生表.公用表表达式(CTE).视图.内嵌表值函数(TVF).简短的内容,深入的理解, ...
- JavaScript特性(attribute)、属性(property)和样式(style)
最近在研读一本巨著<JavaScript忍者秘籍>,里面有一篇文章提到了这3个概念. 书中的源码可以在此下载.我将源码放到了线上,如果不想下载,可以直接访问在线网址,修改页面名就能访问到相 ...
- 走进缓存的世界(三) - Memcache
系列文章 走进缓存的世界(一) - 开篇 走进缓存的世界(二) - 缓存设计 走进缓存的世界(三) - Memcache 简介 Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用 ...
- 使用Git Bash远程添加分支和简单部署你的静态页面
新建一个分支:git branch mybranch(mybranch你的分支名字) 切换到你的新分支: git checkout mybranch 将新分支发布在github上: git push ...
- XAMARIN ANDROID 二维码扫描示例
现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile 做一个简单的 Android 条码扫描示 ...
- eclipse,myeclipse 误删文件,回滚历史文件操作
昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...
- .NET开源进行时:消除误解、努力前行(本文首发于《程序员》2015第10A期的原始版本)
2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET ...