广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    ibatis中传入的参数为数组的处理方法

    来源:网络收集  点击:  时间:2024-03-13
    【导读】:
    在使用ibatis时,我们有时会需要单字段多个值的条件进行查询,如传入的可以是数组或者list形式,那么在这种情况可以有两个方式解决,第一个是在代码中以该参数作基准进行循环查询,第二个是在ibatis的sql中标签循环;那么针对第二个方法,该如何实现呢?以下做简要说明。工具/原料morejavaibatis,maysql,Itellij IDEA方法/步骤1/10分步阅读

    首先,使用如下经验引用中的建表及基础代码;在这个基础上,我们以查询多个特定学生成绩信息为例进行说明,如下传入数组ids={1,2},其中1和2代表某一学生的id值,并将该ids数组放入Map中作为ibatis查询的参数。

    2/10

    重新书写调取的sql,如下图中getScoreByIds查询方法,我们以常用的map传入参数,以一个实体类进行接收;而在查询sql中,我们以一个迭代器作做循环,读取ids数组中的值;

    3/10

    说明此处sql 的意义:首先,iterate标签证明该处使用一个迭代器对property进行循环,此处property赋值为ids,ids是我们传入的数组。

    4/10

    iterate标签还具有open和end这一对属性,如下面图中所示,左括号和右括号的赋值,代表该对属性的值是放在iterate循环的最外层,包住整个生成的sql。

    5/10

    conjunction属性,如下图所示,赋值为逗号,表示每次循环后,都加互购上该属性中的符号。

    6/10

    最后在iterate正负标签间填上取值,使用##进行取值,该处注意ids为数组,需要进行声明,因此该处赋值为#ids#。主要的原因是我是用map进行传参,map中参数为Object的泛型。因此该处需要再次声毙科诉明类型。

    7/10

    通过ibatis的解析,生成的sql为如下所示。

    8/10

    通过第一步中写好的测试main方法,使用debug方式运行,为了展示查询出的结果,在如下图的位置打上断点。目的是为了让程序停在该处,在控制台查看查询结果。

    9/10

    debug方式运行main方法,从如下控制台中可以看到,查询的数据scoreSumList中,证明该方法可行。

    10/10

    因数组可以与List可以相互转换,掌握了这种方式,即使传入糟帮的参数是List,也可以转换为数组再进行操作,当然直接传List进ibatis也是可行的,只需要将入参改为List类型,即用直接声明参数类型。

    注意事项

    双#中该种方式必须声明数组类型,否则报错。

    JAVAIBATIS数组传参IDEA
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_343647.html

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号06-15 15:59:54  耗时:0.020