mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)
现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate。使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数。面对各种复杂的业务场景,传递参数也是一种学问。
下面给大家总结了以下几种多参数传递的方法。
方法1:顺序传参法
public User selectUser(String name, int deptId);<select id="selectUser" resultMap="UserResultMap">select * from userwhere user_name = #{0} and dept_id = #{1}
</select>
#{}
里面的数字代表你传入参数的顺序。
这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。
方法2:@Param注解传参法
public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);<select id="selectUser" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
里面的名称对应的是注解@Param
括号里面修饰的名称。
这种方法在参数不多的情况还是比较直观的,推荐使用。
方法3:Map传参法
public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
里面的名称对应的是Map
里面的key名称。
这种方法适合传递多个参数,且参数易变能灵活传递的情况。
方法4:Java Bean传参法
public User selectUser(Map<String, Object> params);<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">select * from userwhere user_name = #{userName} and dept_id = #{deptId}
</select>
#{}
里面的名称对应的是User
类里面的成员属性。
这种方法很直观,但需要建一个实体类,扩展不容易,需要加属性,看情况使用。
有收获的话,分享下朋友圈给更多的人吧!
关注Java技术栈微信公众号,在后台回复:架构,获取栈长整理的架构教程,都是实战干货,以下仅为部分预览。
- 分布式 ID 生成器的解决方案总结
- 分布式 Session 共享解决方案
- 分布式锁与幂等性问题解决方案
- 微服务架构及分布式事务解决方案
- 高并发大流量访问处理及解决方案
- ……
mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)相关推荐
- delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式
我们知道,Dubbo 缺省协议采用单一长连接,底层实现是 Netty 的 NIO 异步通讯机制:基于这种机制,Dubbo 实现了以下几种调用方式: 同步调用 异步调用 参数回调 事件通知 同步调用 同 ...
- mybatis的mysql参数传递参数_mybatis 传递参数的方法总结
有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(Stringname,String area); 可以在xml配 ...
- mysql batis传多个参数_Mybatis传多个参数(三种解决方案)
据我目前接触到的传多个参数的方案有三种. 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml ...
- SSM整合之Mybatis笔记( MyBatis获取参数值的两种方式(重要))(P020—P025)
P20 MyBatis获取参数值的两种方式(重要) 一.什么叫做获取取参数值的两种方式 以后在我们开发是方向B/S系统,然后我们现在要做的任务通过浏览器/页面/视图 收集用户输入的一些数据,然后把这些 ...
- mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等
1.当实体类中的属性名和表中的字段名不一样 解决办法①: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致 <select id="selectorde ...
- Mybatis查询传递单个参数和传递多个参数用法
一:单个参数,Mybatis不会做特殊处理 二:多个参数,Mybatis会做特殊处理 1:传递多个多个参数时候,第一种写法如下 比如传递了两个参数,用 #{param1} and #{param2} ...
- 五、深入理解Mybatis中的参数parameterType (传递一个简单参数,传递多个参数:@Param、使用自定义对象、按位置、使用Map)
1.1 parameterType parameterType: 接口中方法参数的类型, 类型的完全限定名或别名.这个属性是可选的,因为 MyBatis可以推断出具体传入语句的参数,默认值为未设置(u ...
- 2020-08-10 Mybatis配置、使用Map集合传递SQL参数、核心配置文件解析、给包取别名
mybatis配置错误解析 注意!在Mapper.xml的配置文件中,namespace的路径要写成这种形式 <mapper namespace="com.wang.Dao.UserM ...
- mybatis 传递参数的三种方式
mybatis 框架的主要工作是数据层, 侧重于与数据库打交道的sql语句的编写,对sql也要求比较熟练. mybatis 传递参数的方式主要有三种: 1. 多个参数的传递方式 形式如: ...
最新文章
- 手把手教你简单接入微信SDK
- stdthread(5)并发atomic
- 【做题记录】 [JLOI2011]不等式组
- 华为云整合三朵云能力,第二阶段决战大政企战场
- Enews博客/CMS/双模式主题源码
- web前端性能优化总结 1
- PO系列之 使用XPI_INSPECTOR跟踪PO报错
- 2013 B 碎纸片拼接与复原
- 一篇文章告诉你什么是社群运营
- 基于LASSO的波士顿房价分析
- 手机屏幕如何投屏到电脑上(Windows10)
- 那些年啊,那些事——一个程序员的奋斗史 ——33
- 电池高压安全注意事项
- python程序设计山东联盟期末考试_知到_Python程序设计基础(山东联盟)_章节测试答案...
- Hive2.x、HiveServer、HiveServer2简述及Beeline使用
- WebP 文件及其编码解码工具(WebPconv)
- WPARAM 与 LPARAM
- Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式
- MS CRM2011库文件升级到CRM2015
- 长时长视频java存储及vue播放解决方法