ibatis mysql iterate_IBATIS中关于iterate$与#的应用
一个包含List元素的HashMap参数赋给sqlMap
public int getCountById(String id, String title, List ids) throws Exception {
Map paramMap=new HashMap();
paramMap.put("id", id);
paramMap.put("title", title);
paramMap.put("ids",ids);
return (int) this.sqlMapClient.queryForObject("getCountById", paramMap);
}
上面的ids元素是一个List,里面包含了一个id列表。id和title都是String。
select *
from MYTABLE
ID=#id#
TITLE like '%$title$%'
IDS in
#ids[]#
order by TIME DESC
在上面的sqlMap中要注意的地方有两个。第一个地方是,标签中一定要记得写property="ids",不要因为在上面的
标签中判断了该属性,就在这个标签中忽略了property的书写(如果你忘了
写iterate中的property属性的话系统会报这样的错误Cause: com.ibatis.sqlmap.client.SqlMapException: ParameterObject or
property was not a Collection, Array or Iterator.),并且要记住,
#ids[]# 中的‘[]’符号,只有这样ibatis才把ids作为一个可迭代的对象(list,数组...),不然的话ibatis会把ids作为普通的string来处理。
第二个地方就是,上面的关于‘$‘与‘#’的应用。
下面就来说说关于‘$‘与‘#’的应用。在通常情况下ibatis的参数在sqlmap中使用#param#的形式,参数名以’#‘包着,但当使用
sql的like语句时就发生了问题,在单引号中无法使用#param#这种形式。解决办法有:
1.当应用select * from table1 where col like ’value%’时,如果要把‘value’以参数代替,可以把整个like后面的字符串
全改为参数。即:select * from table1 where col like #param# ,此时参数param的值为字符串"value%"
2.使用‘$’将参数名包起来。例如:name like ‘%#name#%’。我们的解决方法有2。(a)把name like ‘%#name#%’的
#换成$,即:name like ‘%$name$%’。(b)用||连接字符串的方式,写成,name like ‘%’|| #name#‘%’。
ibatis mysql iterate_IBATIS中关于iterate$与#的应用相关推荐
- ibatis mysql iterate_ibatis中iterate问题的解决 | 学步园
目的:要根据分类的ID数组列表获得属于这些分类的News对象数组. 函数调用为newslist=(ArrayList)sqlMap.queryForList("getNewsByCatalo ...
- ibatis mysql iterate_ibatis中动态语句的iterate标签
例子一 查询条件dto public class queryCondition { private String[] stuIds; private String name; } 查询sqlMap s ...
- ibatis mysql iterate_ibatis实现Iterate的使用
property="" /*可选, 从传入的参数集合中使用属性名去获取值, 这个必须是一个List类型, 否则会出现OutofRangeException,通常是参 ...
- ibatis mysql iterate_IBATIS的iterate标签
使用IBATIS的iterate标签来动态构造SQL 需要注意的地方: 参数是List,iterate不需要设置property属性 select id,channel_name,channel_id ...
- c ibatis mysql实例_Ibatis+MySql实例
1. 介绍 Ibatis是开源的持久层框架.它的核心是SqlMap,将实体Bean跟关系数据库进行映射,将业务代码和SQL语句的书写进行分开,方便管理.Ibatis是"半自动"的O ...
- ibatis mysql 函数_Ibatis+MySql范例(转)
Ibatis+mysql实例(转) 1. 介绍 Ibatis是开源的持久层框架.它的核心是SqlMap,将实体Bean跟关系数据库进行映射,将业务代码和SQL语句的书写进行分开,方便管理.Ibatis ...
- bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...
- mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争
在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...
- mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速
有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...
最新文章
- 深度强化学习入门到精通--资料综述
- 用Node.js 写web框架(番外)
- win10 php mysql_win10 下 apache php mysql 开发环境安装
- 【异常】 ‘ascii‘ codec can‘t decode byte 0xe8 in position 2: ordinal not in range(128)
- DeepMind让AI首次在量子水平描述物质!Nature:化学领域最有价值技术之一
- DeeCamp2021启动,李开复张亚勤吴恩达等大咖喊你报名啦
- linux 文档编辑器 word,linux下vi编辑器命令大全
- YIi2 對接 支付寶Alipay支付接口
- sql慢查询问题排查
- Exp3 免杀原理与实践 20164314
- 【UOJ 53】线段树区间修改
- lumen 下使用自定义配置文件
- html5 调用微信分享,HTML5教程之微信调用分享接口
- 简明Linux命令行笔记:tee
- .net mvc 导出excel表格
- 交易系统开发(三)——风控系统
- 查看电脑无线网 wifi密码
- 微信扫一扫地标识别技术揭秘
- visio 如何让箭头完全水平?
- 微信小程序学习笔记③——wxml+wxss+js基础入门[样例+解析]