mapper 传多个参数

Mybatis的Mapper接口的参数,一般是一个对象,但如果不是对象,并且有多个参数的时候呢?我们第一个的想法是把参数封装成一个java.util.Map类型,然后在方法的注释上面写上map的key是什么,但是,这样的做法明显不够直观,不能够一眼看出这个方法的参数是什么,并且,影响到了java方法的多态性(方法名相同,参数数量或类型不同)。下面的方法一和方法二能够解决问题!

DAO层的函数方法


1

Public User selectUser(String name,String area);

对应的Mapper.xml


1

2

3

<select id="selectUser" resultMap="BaseResultMap">

    select  from user_user_t   where user_name = #{0} and user_area=#{1}

</select>

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

此方法采用Map传多参数.

Dao层的函数方法


1

Public User selectUser(Map paramMap);

对应的Mapper.xml


1

2

3

<select id=" selectUser" resultMap="BaseResultMap">

   select  from user_user_t   where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}

</select>

Service层调用


1

2

3

4

5

Private User xxxSelectUser(){

Map paramMap=new hashMap();

paramMap.put(“userName”,”对应具体的参数值”);

paramMap.put(“userArea”,”对应具体的参数值”);

User user=xxx. selectUser(paramMap);}

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。

Dao层的函数方法


1

Public User selectUser(@Param(“userName”)String name,@Param(“userArea”)String area);

对应的Mapper.xml


1

2

3

<select id=" selectUser" resultMap="BaseResultMap">

   select  from user_user_t   where user_name = #{userName,jdbcType=VARCHAR} and user_area=#{userArea,jdbcType=VARCHAR}

</select

个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案

时间: 2024-10-11 03:52:07

mapper 传多个参数的相关文章

MyBatis学习总结_19_Mybatis传多个参数(三种解决方案)

据我目前接触到的传多个参数的方案有三种. 第一种方案  DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_area=#{1} </sele

Mybatis传多个参数(三种解决方案)

据我目前接触到的传多个参数的方案有三种. 第一种方案 DAO层的函数方法 ? 1 PublicUserselectUser(Stringname,String area); 对应的Mapper.xml ? 1 2 3 <selectid="selectUser"resultMap="BaseResultMap"> select * fromuser_user_t  whereuser_name = #{0}anduser_area=#{1} </s

【转】Mybatis传多个参数(三种解决方案)

转自: http://www.2cto.com/database/201409/338155.html 据我目前接触到的传多个参数的方案有三种. 第一种方案: DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id="selectUser" resultMap="BaseResultMap"> select  *  from user_user

js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '&qu

button点击传多个参数

// --------------------button点击传多个参数------------------------ UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem]; btn.frame = CGRectMake(100, 100, 200, 50); btn.backgroundColor = [UIColor blueColor]; [btn setTitle:@"click me" forState:U

mybatis 嵌套查询子查询column传多个参数描述

mybatis 嵌套查询子查询column传多个参数如下: 1.图解 2.代码示例 备注:注意,相同颜色的单词都是有关联的. <resultMap id="blogResult" type="Blog"> <association property="author" column="{id=author_id,likename=author_name}" javaType="Author"

httpclient 4.3 psot方法上传文件与参数 中文乱码解决

废话不多说,直接上有码的! 1 package httpclient; 2 3 import java.io.File; 4 import java.nio.charset.Charset; 5 6 import org.apache.http.Consts; 7 import org.apache.http.Header; 8 import org.apache.http.HttpEntity; 9 import org.apache.http.client.methods.Closeable

C# params object[] args 可以传多个参数,可以不限制类型(转)

C# params object[] args 可以传多个参数,可以不限制类型 using System;using System.Collections.Generic;using System.Text; namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            print("Information", new Fie

idea java方法中 传多个参数对象 的复制粘贴快速处理方法

比如像这种的传多个参数对象,我是直接复制过来,然后把第一个字母改成大写,然后后面的实例对象敲一个第一个字符的小写就直接出来了 原文地址:https://www.cnblogs.com/kinome/p/10314670.html