mybatis多个参数传递

Map接收参数

要查阅本文的基本都是需要传入多个参数的,这里记住一句话:无论你传的参数是什么样的,最后mybtis都会将你传入的转换为map的,那么既然这样,当我们要传入多个参数时,何不直接给与map类型即可,然后mapper.xml通过#{map.key}来获取值即可,这个特别适合动态搜索,或者多个参数的查询,并且可以在mapper的xml语句中通过if判断来实现若为空,则不添加查询条件,

<if test="userId != null">    #{userId,jdbcType=VARCHAR},</if>

还可以通过for来进行遍历。

一、单个参数:

public List<XXBean> getXXBeanList(@param("id")String id);  

<select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">

  select t.* from tableName t where t.id= #{id}  

</select>  

其中方法名和ID一致,#{}中的参数名与方法中的参数名一致, 这里采用的是@Param这个参数,实际上@Param这个最后会被Mabatis封装为map类型的。

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

二、多参数:

方案1

public List<XXXBean> getXXXBeanList(String xxId, String xxCode);  

<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where id = #{0} and name = #{1}  

</select>  

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

方案2(推荐)基于注解

public List<XXXBean> getXXXBeanList(@Param("id")String id, @Param("code")String code);  

<select id="getXXXBeanList" resultType="XXBean">

  select t.* from tableName where id = #{id} and name = #{code}  

</select>  
时间: 2024-12-07 21:01:40

mybatis多个参数传递的相关文章

Mybatis使用之参数传递

Mybatis使用之参数传递 一:简介 主要记录Mybatis是如何映射传递的参数的.分四种来记录:1.java基本类型的传递.2.Java对象形式传递 3.多参数传递4.集合类型参数传递 二:具体方式 2.1 java基本类型 以整形为例.映射文件: <select id="getAuthorById" parameterType="int" resultType="org.alien.mybatis.samples.model.Author&qu

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理、天气类型、资产管理、理财规划)

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理.天气类型.资产管理.理财规划) 课程讲师老牛 课程分类Java 适合人群中级 课时数量78课时 更新程度完毕 服务类型C类普通服务类课程 用到技术Springmvcspringmybatisjquery easyui 涉及项目个人信息管理好友管理报表实现 咨询QQ2050339477 课程链接http://www.dwz.cn/LO1X3 课程背景 本系统主要用于个人信息的管理通过软件工具对

java框架----&gt;mybatis的使用(一)

这里我们记录一些mybatis的一些常用知识和项目中遇到的问题总结.快乐人生的三个必要元素是,有要做的事.热爱的事及盼望的事. mybatis的一些知识 一.mybatis插入返回主键值 插入的java代码:其中返回是当前插入的主键,insert方法返回的是影响的行数. public void insertUserInfo() { Map<String, Object> map1 = new HashMap<>(); map1.put("userName", &

MyBatis多参数传递之注解方式示例--转

原文地址:http://legend2011.blog.51cto.com/3018495/1015003 若映射器中的方法只有一个参数,则在对应的SQL语句中,可以采用#{参数名}的方式来引用此参数,以前的例子多属于此类.但这种方法却不适用于需要传递多个参数的情况,今天就来介绍如何使用注解传递多个参数(示例源码下载地址:http://down.51cto.com/data/537051). 一.使用注解实现多参数传递 首先应引入“org.apache.ibatis.annotations.Pa

Mybatis参数传递的集中写法和方式

一.单个参数: public List<XXBean> getXXBeanList(String id);   <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">     select t.* from tableName t where t.id= #{id}       --或者#{_parameter}  

myBatis,mapper查询方法参数传递出错

myBatis,mapper查询方法参数传递出错 接口类mapper的方法: public string getData(String str); mapper.xml文件中sql语句: select * from table1 t where t.str=#{str} 这样可能会报错,报错内容是找不到参数str; 把接口类mapper中的方法参数修改一下: public string getData(@Param(value = "str") String str); 就不报错了

Mybatis参数传递及返回类型

mybatis参数传递: 单个参数:不做特殊处理        #{参数名}:取出参数值    多个参数:做特殊处理        多个参数会被封装成一个map            key:param1   ...   paramN            value:传入的参数值        #{}就是从map中获取指定的key值                操作:            方法:public Employee getEmployeeByNmaeAndPass(String

MyBatis的SQL语句映射文件详解(三)----参数传递

1.单一基本类型参数(String,int等) 单一的基本类型参数,将对应语句中的parameterType的值与参数的类型相同.然后直接 用“#{参数名}” 来获取 java代码 //String类型的参数 usernamepublic User findUser(String usernumber) { return (User) sqlSessionTemplate.selectOne("findUserByUsernumber", usernumber); } xml代码 //

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一致,