博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis 查询传多个参数(3中方法)
阅读量:4557 次
发布时间:2019-06-08

本文共 1321 字,大约阅读时间需要 4 分钟。

第一种方案 

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);}

个人认为此方法不够直观,见到接口方法不能直接的知道要传的参数是什么。(注意:参数前面有#号和$符号之分,他们的区别是,#号有防止SQL注入的功能,会对参数进行一些处理,但是$符号是获取你原始传过来的值)

第三种方案

Dao层的函数方法

1
Public
User
selectUser(@param(“userName”)Stringname,@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层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案。

 

转自:http://blog.csdn.net/gebitan505/article/details/51566514

 

转载于:https://www.cnblogs.com/latter/p/6759066.html

你可能感兴趣的文章
XShell远程连接本地虚机
查看>>
好吧,又失眠
查看>>
一个不错的cv个人主页
查看>>
20159206《网络攻防实践》第十二周学习总结
查看>>
'Upgrade' header is missing
查看>>
[git]git的分支管理
查看>>
针对NSString字符串的排序
查看>>
(五)myBatis架构以及SQlSessionFactory,SqlSession,通过代理执行crud源码分析---待更...
查看>>
关于IE6中做兼容的那点事。
查看>>
Swift创建空数组
查看>>
剑指offer(32)把数组排成最小的数
查看>>
特殊的夸赞 对女生的夸奖
查看>>
非Markdown - Test
查看>>
1044 火星数字 (20 分)
查看>>
【题解】Luogu P1204 [USACO1.2]挤牛奶Milking Cows
查看>>
挂载云硬盘后的分区、格式化与挂载
查看>>
android:shape的使用
查看>>
Android自定义UI
查看>>
spring boot整合quartz实现多个定时任务
查看>>
db powerdesign CDM、LDM、PDM、OOM的区别
查看>>