Mybatis传入参数为map

Mapper:
List<AdPayConfigEntity> selectByAdType(@Param("status") Integer... status);

XML:<select id="selectByAdType" parameterType="map" resultMap="BaseResultMap">    SELECT * from sky_ad_pay_config WHERE ad_type IN    <foreach collection="status" item="sta" separator="," open="(" close=")">        #{sta}    </foreach></select>
【我之前写的mapper的参数里面写的都是list,原来还可以传入不定参数。又学习了】

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。

foreach元素的属性主要有item,index,collection,open,separator,close。

  (1) item:表示集合中每一个元素进行迭代时的别名,

  (2) index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置,

  (3) open:表示该语句以什么开始,

  (4) separator:表示在每次进行迭代之间以什么符号作为分隔符,

  (5) close:表示以什么结束,

  (6) collection:属性是在使用foreach的时候最关键的也是最容易出错的,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下3种情况:

    ①如果传入的是单参数且参数类型是一个List的时候,collection属性值为list .

    ②如果传入的是单参数且参数类型是一个array数组的时候,collection的属性值为array .

    ③如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.

				
时间: 2024-12-24 00:47:52

Mybatis传入参数为map的相关文章

MyBatis传入参数为集合 list 数组 map写法

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性

MyBatis传入参数为集合、数组SQL写法

参考:http://blog.csdn.net/small____fish/article/details/8029030 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach标签的属性主要有item,index,collection,open,separator,close. item 表示集合中每一个元素进行迭代时的别名,随便起的变量名: index 指定一个名字,用于表示在迭代过程中,每次迭代到的位置,不常用: open 表示该语句以什么开始,常用"

mybatis传入参数类型parameterType和输出结果类型resultType详解

前言 Mybatis的Mapper文件中的select.insert.update.delete元素中都有一个parameterType和resultType属性,parameterType属性用于对应的mapper接口方法接受的参数类型,resultType用于指定sql输出的结果类型. resultType:指定sql输出结果类型,总共就两种: 1. 基本数据类型. 2. pojo类类型.mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象.如果有多条数据,则

MyBatis传入参数与parameterType

Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型. 可以接受的参数类型有基本类型和复杂类型. mapper接口方法一般接受一个参数,可以通过使用@Param注释将多个参数绑定到一个map做为输入参数. 简单数据类型 mapper接口方法: User selectByPrimaryKey(Integer id); sql映射: <select id="select

【MyBatis】解析MyBatis传入参数的问题

一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean"> select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,

mybatis 传递参数的方法总结

有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml配置文件中写 <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_area=#{1} <

mybatis 关于 传入参数为集合list和map的写法

1.mybatis 中foreach的用法 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束. 使用 foreach 时特别要注

MyBatis传入多个参数的问题

一.单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean"> select t.* from tableName t where t.id= #{id} </select> 其中方法名和ID一致,

小峰mybatis(2)mybatis传入多个参数等..

一.mybatis传入多个参数: 前面讲传入多个参数都是使用map,hashmap:key value的形式:-- 项目中开发都建议使用map传参: 比如现在通过两个参数,name和age来查询: 通过两个参数来查的,了解下就行了: 数据库中存在t_student记录: 1)测试代码StudentTest.java: @Test public void testSearchStudents() { logger.info("根据name和age查询学生"); List<Stude