首页 > 其他分享 >Mybatis传递多个参数的几种方式

Mybatis传递多个参数的几种方式

时间:2022-10-12 08:44:22浏览次数:45  
标签:name 几种 public 参数 User Mybatis id select user

1、顺序传参法

复制代码
public User selectUser(String name, int deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{0} and dept_id = #{1}
</select>
复制代码

#{}里面的数字代表你传入参数的顺序。

这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。

 

2、@Param注解传参法

复制代码
public User selectUser(String name, int deptId);

<select id="selectUser" resultMap="UserResultMap">
    select * from user
    where user_name = #{0} and dept_id = #{1}
</select>
复制代码

#{}里面的名称对应的是注解@Param括号里面修饰的名称。

这种方法在参数不多的情况还是比较直观的,推荐使用。

 

3、Map传参法

复制代码
public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>
复制代码

  也可以

复制代码
public User selectUser(Map<String, Object> params);

<select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
    select * from user
    where user_name = #{params.userName} and dept_id = #{params.deptId}
</select>
复制代码

#{}里面的名称对应的是Map里面的key名称。

这种方法适合传递多个参数,且参数易变能灵活传递的情况。

PS:
MyBatis传递map参数时,如果传递参数中没有对应的key值,在执行sql语句时默认取的是null

例如:map中没有put “name”这个key,在sql中使用#{name}时,默认赋值null

 

4、Java Bean传参法

复制代码
public User selectUser(User params);

<select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
    select * from user
    where user_name = #{userName} and dept_id = #{deptId}
</select>
复制代码

#{}里面的名称对应的是User类里面的成员属性。

这种方法很直观,但需要建一个实体类,扩展不容易,需要加属性,看情况使用。

标签:name,几种,public,参数,User,Mybatis,id,select,user
From: https://www.cnblogs.com/Sweetp/p/16783250.html

相关文章

  • MyBatis中三种分页查询方式
    文章目录通过limit分页查询通过Rowbounds通过分页插件pagehelper通过limit分页查询mapper接口1List<User>getUserByLimit(Map<String,Integer>map);mapper.xm......
  • Mybatis传参的方式总结
    mybatis传参的几种方式?目录第一种情形,传入单个参数userId第二种情况,传入多个参数userId,sex使用索引对应值第三种情形,传入多个参数userId,sex使用注解@Param第四......
  • JVM参数设置、分析
    不管是YGC还是FullGC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提......
  • SpringBoot+MyBatis Plus对Map中Date格式转换的处理
    在SpringBoot项目中,如何统一JSON格式化中的日期格式问题现在的关系型数据库例如PostgreSQL/MySQL,都已经对JSON类型提供相当丰富的功能,项目中对于不需要检索但是......
  • MyBatisPlus笔记
    MyBatisPlus快速入门1.创建数据库mybatisplus2.创建user表并插入数据DROPTABLEIFEXISTSuser;CREATETABLEuser(idBIGINT(20)NOTNULLCOMMENT'主键I......
  • mybatis返回值乱码(mysql数据库编码正确)
    解决办法:在springmvc.xml文件里面插入<!--解决乱码问题--><mvc:annotation-driven><mvc:message-converters><beanclass="org.springfram......
  • IDEA内设置启动参数和环境变量
    1.点击EditConfiguration2、设置页面2.1、属性信息#VMArguments是设置的虚拟机的属性#VMoptions#环境变量参数非虚拟机参数需要指定-D参数-server......
  • Mybatis实现@Select@Update等注解动态查询或更新SQL语句
    通过自己实现LanguageDriver,在服务器启动的时候,就会将我们自定义的标签解析为动态SQL语句。例如,写个构造updatein的动态sql更新,代码如下:packagecom.ljw.web.common.my......
  • MyBatis-Plus个人笔记
    第一章MyBatis-Plus入门1)MP简介官方地址:http://mp.baomidou.com代码发布地址:Github:https://github.com/baomidou/mybatis-plusGitee:https://gitee.com/baomi......
  • Hive数据导出的几种方式
     在hive的日常使用中,经常需要将hive表中的数据导出来,虽然hive提供了多种导出方式,但是面对不同的数据量、不同的需求,如果随意就使用某种导出方式,可能会导致导出时间过长,导......