一个包含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$与#的应用相关推荐

  1. ibatis mysql iterate_ibatis中iterate问题的解决 | 学步园

    目的:要根据分类的ID数组列表获得属于这些分类的News对象数组. 函数调用为newslist=(ArrayList)sqlMap.queryForList("getNewsByCatalo ...

  2. ibatis mysql iterate_ibatis中动态语句的iterate标签

    例子一 查询条件dto public class queryCondition { private String[] stuIds; private String name; } 查询sqlMap s ...

  3. ibatis mysql iterate_ibatis实现Iterate的使用

    property=""   /*可选,   从传入的参数集合中使用属性名去获取值,   这个必须是一个List类型,   否则会出现OutofRangeException,通常是参 ...

  4. ibatis mysql iterate_IBATIS的iterate标签

    使用IBATIS的iterate标签来动态构造SQL 需要注意的地方: 参数是List,iterate不需要设置property属性 select id,channel_name,channel_id ...

  5. c ibatis mysql实例_Ibatis+MySql实例

    1. 介绍 Ibatis是开源的持久层框架.它的核心是SqlMap,将实体Bean跟关系数据库进行映射,将业务代码和SQL语句的书写进行分开,方便管理.Ibatis是"半自动"的O ...

  6. ibatis mysql 函数_Ibatis+MySql范例(转)

    Ibatis+mysql实例(转) 1. 介绍 Ibatis是开源的持久层框架.它的核心是SqlMap,将实体Bean跟关系数据库进行映射,将业务代码和SQL语句的书写进行分开,方便管理.Ibatis ...

  7. bd2和mysql语法区别,经验:在MySQL数据库中,这4种方式可以避免重复的插入数据!...

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

  8. mysql数据库中nchar_MySQL数据库中CHAR与VARCHAR之争

    在MySQL数据库中,用的最多的字符型数据类型就是Varchar和Char..这两种数据类型虽然都是用来存放字符型数据,但是无论从结构还是从数 据的保存方式来看,两者相差很大.而且其具体的实现方式,还 ...

  9. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速

    有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...

最新文章

  1. 深度强化学习入门到精通--资料综述
  2. 用Node.js 写web框架(番外)
  3. win10 php mysql_win10 下 apache php mysql 开发环境安装
  4. 【异常】 ‘ascii‘ codec can‘t decode byte 0xe8 in position 2: ordinal not in range(128)
  5. DeepMind让AI首次在量子水平描述物质!Nature:化学领域最有价值技术之一
  6. DeeCamp2021启动,李开复张亚勤吴恩达等大咖喊你报名啦
  7. linux 文档编辑器 word,linux下vi编辑器命令大全
  8. YIi2 對接 支付寶Alipay支付接口
  9. sql慢查询问题排查
  10. Exp3 免杀原理与实践 20164314
  11. 【UOJ 53】线段树区间修改
  12. lumen 下使用自定义配置文件
  13. html5 调用微信分享,HTML5教程之微信调用分享接口
  14. 简明Linux命令行笔记:tee
  15. .net mvc 导出excel表格
  16. 交易系统开发(三)——风控系统
  17. 查看电脑无线网 wifi密码
  18. 微信扫一扫地标识别技术揭秘
  19. visio 如何让箭头完全水平?
  20. 微信小程序学习笔记③——wxml+wxss+js基础入门[样例+解析]

热门文章

  1. conda 环境 cv2.imshow报错
  2. 开发手机群控系统(手机网络篇)
  3. 全球与中国压力继电器市场深度研究分析报告
  4. AT32F403A PB3 PB4 PA15如何用作普通IO使用
  5. 模糊函数逼近器+滑模变结构控制高超声速飞行器(源代码)
  6. 强化学习用于推荐系统 相关资料
  7. R语言求拟合函数图形的交点坐标
  8. java excel 数据有效性_Java设置Excel数据验证(数据有效性)
  9. excel导入数据校验_Excel数据验证错误消息
  10. 《黑马程序员》C++核心编程(二)