Java中MyBatis传入参数parameterType问题

这篇文章主要介绍了Java中MyBatis传入参数parameterType问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

parameterType:MyBatis的传入参数

参数类型主要分为两种

(1)基本数据类型:int,string,long,Date

(2)复杂数据类型:类和Map

获取参数中的值

(1)基本数据类型:#{参数} 获取参数中的值

(2)复杂数据类型:#{属性名}  ,map中则是#{key}

首先说说单参数基本数据类型,如:String,Long

一、单参数

//根据name查询 public List getXXBeanList(String name);            //根据主键id查询 public List getXXBeanList(Long beanId);   

其中方法名和ID一致,#{}中的参数名与方法中的参数名一致, 上面采用的是XXXBean,是采用的短名字,

select 后的字段列表要和bean中的属性名一致, 如果不一致的可以用 as 别名 来补充

二、多参数

1、索引 #{index}

public List getXXBeanList(String beanId, String name);       

由于是多参数,不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始

#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可

2、Map封装多参数

        Map hashmap = new HashMap();         params.put("userId", userId);         params.put("userName", userName);   public List getXXBeanList(HashMap  hashmap);       

其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个

3、List封装in

public List getXXBeanList(List list);        

foreach 最后的效果是select 字段... from XX where id in ('1','2','3','4')

4、注解方式

public User getUser(@Param("userId")Long userId, @Param("name")String name);

Mapper.xml配置:

5、多类型参数

selectList()只能传递一个参数,但实际所需参数既要包含String类型,又要包含List类型时的处理方法;将参数放入Map,再取出Map中的List遍历

List list = new ArrayList(); Map map2 = new HashMap();   list.add("1"); list.add("2"); map2.put("list", list);    map2.put("roleCode", "0101");

mapper.xml

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是Java中MyBatis传入参数parameterType问题的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java