目的:要根据分类的ID数组列表获得属于这些分类的News对象数组。

函数调用为newslist=(ArrayList)sqlMap.queryForList("getNewsByCatalogList", catalogList);

一开始直接用string的写法

xml 代码

   SELECT

     newsId as newsId,

     title as title,

     content as content,

     topicId as topicId

     FROM cnsv_news where  cnsv_news.catalogId IN(#catalogListStr

catalogListStr为String类型,值为"1,2,3"的样子

发现有问题,只能得到第一个ID的对象,显然不行。

后来按照ibatis的说明文档,使用iterate写配置文件:

xml 代码

SELECT

newsId as newsId,

title as title,

content as content,

topicId as topicId

FROM cnsv_news wherecnsv_news.catalogId=#catalogList[]#

一直没调试成功,出现com.ibatis.common.beans.ProbeException: Error getting ordinal list from JavaBean错误。查资料、网上搜了一通都解决不了,后来看了一下JPetStore-5.0的例子结合我跟它的区别和Error getting ordinal list from JavaBean,感觉可能是我的resultClass—News里面没有catalogList属性引起的,后来也证实猜测是正确的。我的News里面显然不适合有catalogList属性,一时想不到办法,抱着必将失败的心态干脆把property=”catalogList”删除掉试试(ibatis说明文档上说property是必选的,这句话可真是误人子弟啊),删除之后一运行竟然成功了

删除之后:

   SELECT

     newsId as newsId,

     title as title,

     content as content,

     topicId as topicId

     FROM cnsv_news where

        cnsv_news.catalogId=#catalogList[]#

原因分析:有了property=”catalogList”这句ibatis会在News里面找catalogList,而News里面有没有这个属性所以就抛出com.ibatis.common.beans.ProbeException: Error getting ordinal list from JavaBean异常。删掉property=”catalogList”之后,ibatis就会在传入的parameterClass中找catalogList,这正是我需要的。

Java架构俱乐部,QQ群2826942 ,交流Java架构,领域模型,设计模式,AOP,IOC,轻量级,DDD,项目管理,设计思想等问题,聚集经验丰富的高级程序员,架构师,项目经理等交流以上层面较高的问题。欢迎各位有识之士加入,共同探讨、发表高见、广结精英。为了使各位成员免受无聊信息和低端问题的打扰,请尽量避免讨论代码实现等入门级问题,维护本群的氛围和讨论质量。新手勿加

ibatis mysql iterate_ibatis中iterate问题的解决 | 学步园相关推荐

  1. ibatis mysql iterate_IBATIS中关于iterate$与#的应用

    一个包含List元素的HashMap参数赋给sqlMap public int getCountById(String id, String title, List ids) throws Excep ...

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

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

  3. ibatis mysql iterate_IBATIS的iterate标签

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

  4. ibatis mysql iterate_ibatis实现Iterate的使用

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

  5. fedora ssh 安装mysql,Fedora中安装和配置OpenSSH | 学步园

    SSH的简介 传统的远程登陆程序的工具,比如TELNET.Rlogin以及Rsh等,都是将口令在网上明文的方式传输的.显然这不能保证系统和用户的安全和利益.SSH(Secure Shell)则避免了上 ...

  6. java 发邮件 乱码_JavaMail发送中文邮件乱码的解决 | 学步园

    我们的程序经常会出现这样一个问题,在WinXp下测试是正常的,而到了服务器(Linux操作系统)上就出现这个问题. 1.    由于邮件我写的程序的邮件主题是写在配置文件(. properties)中 ...

  7. oracle 的exp是什么,oracle中exp和imp是什么,oracle中exp和imp有何区别 | 学步园

    oracle中exp和imp是什么,oracle中exp和imp有何区别.exp和imp的输入都是名字和值对:exp parameter_name=value 或exp parameter_name= ...

  8. mysql temporary table select_MYSQL中的CREATE TEMPORARY TABLE | 学步园

    记录一下今天的一个BUG FIXING.早上收到一个BUG,说有一个到模块A的调用B,多执行几次以后就会出错.错误信息显示SQL ERROR.因为CDC SBE就我最近改过模块A的代码,就把BUG塞给 ...

  9. mysql 二进制转字符串_MySql字符转义 | 学步园

    在字符串中,某些序列具有特殊含义.这些序列均用反斜线('\')开始,即所谓的转义字符.MySQL识别下面的转义序列: \0 ASCII 0(NUL)字符. \' 单引号('''). \" 双 ...

最新文章

  1. 对比学习系列论文SDCLR(一)-Self-Damaging Contrastive Learning论文的概括
  2. Django startproject的问题
  3. 一步步编写操作系统 51 加载内核4
  4. Linux的JVM可以从SUN网站上下载
  5. 抓取流量分析恶意软件或泄密流量(精)
  6. Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息
  7. 通过Xshell来访问和连接Linux
  8. mvc三层架构_Java架构-代码分层的设计之道
  9. zepto-创建dom
  10. 二极管(一):反向恢复时间
  11. android studio for android learning (八)开机启动界面splashActivity
  12. Java IO流复制文件拒绝访问的原因及解决方法
  13. KX022-1020 3轴 传感器 LGA RT8577AGQW LED驱动器
  14. 拆书帮第14期训练营——作业九:如何通过刻意练习来掌握临界知识
  15. 软件复用及构件、C/S与B/S混合模型及实战项目技术简述
  16. Python代码画圣诞树--turtle绘图
  17. 转转“拯救世界”的第一步,师从小米换LOGO?
  18. 淘宝订单接口|订单插旗备注,淘宝开放平台最稳定的店铺订单接口
  19. 计算机键盘重复,电脑怎么设置键盘重复延迟和重复速度?
  20. nodejs 传递参数

热门文章

  1. oracle dynamic set,ORACLE 数据库管理艺术
  2. 穷人的新年红包系统,单节点 12W TPS
  3. 关于ViewPager
  4. python学习实验报告(第九周)
  5. C语言指针学习(1)
  6. 计算机网盘怎么换账号密码,科技教程:百度网盘电脑端怎么切换不同的账号进行登录...
  7. 打印的时候计算机出现蓝屏,在电脑打印时电脑总是会蓝屏或重启怎么处理
  8. 最新版某音X-Gorgon算法和设备注册算法研究思路
  9. 安卓Bottom Navigation Activity的自定义使用,即常见错误的处理
  10. 用好ChatGPT之准确分配角色