mybatis补充教程之二:传递多个参数的方法(Multiple parameters)

摘要: 在用mybatis 做查询的时候,通常会传递多个参数,一般来说,这种情况下有两种解决办法:1, 利用 hashMap 去做。2, 利用 mybatis 自身的多个参数传递方式去做。分别补充如下

在用mybatis 做查询的时候,通常会传递多个参数,一般来说,这种情况下有两种解决办法:
1, 利用 hashMap 去做。
2, 利用 mybatis 自身的多个参数传递方式去做。分别补充如下:

利用hashMap 传递多个参数
比如有如下语句:

<select id=""selectByDate"" parametertype=""map"" resultmap=""campaignStats"">
<!--[CDATA[
   Select * FROM CampaignStats Where statsDate -->= #{start} AND statsDate <= #{end}
]]>
</select>


对应的java 代码为

public ListselectByDate(Date start, Date end){
    SqlSession session = sqlSessionFactory.openSession();
    try {
        Mapmap = new HashMap();
        map.put("start", start);
        map.put("end", end);
        Listlist = session.selectList("DpCampaignStats.selectByDate", map);
        return list;
    } finally {
        session.close();
    }
}


只是第一种方法,当然还有还有如下方法

mybatis 自带的 多个参数传递方法。
同样的 语句

<select id=""selectByDate"" resultmap=""campaignStats"">
<!--[CDATA[
   Select * FROM CampaignStats Where statsDate -->= #{param1} AND statsDate <= #{param2}
]]>
</select>


请注意,这个时候没有 parameterType, 但用到了类似 #{param1} 类似的参数. 同样 java 代码也需要做出改变

public ListselectByDate(Date start, Date end){
    SqlSession session = sqlSessionFactory.openSession();
    try {       
        Listlist = session.selectList("DpCampaignStats.selectByDate", start,end);
        return list;
    } finally {
        session.close();
    }
}



推荐使用hashMap 来传递多个参数.

上一篇: mybatis补充教程之一:在控制台显示sql语句,类似hibernate show_sql.
下一篇: django 防止 XSS 注入的方法

Avatar

N3verL4nd 评论于: 2017-07-03

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'start' not found. Available parameters are [arg1, arg0, param1, param2]
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号