MyBatis获取参数值的两种方式以及参数封装


一、MyBatis获取参数值的两种方式:

${}

#{}

${}的本质就是字符串拼接,#{}的本质就是占位符赋值

${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;

但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

二、Mybatis参数封装

*Mybatis参数封装:
             * 单个参数
                 1.POJO类型:直接使用,属性名 和参数占位符名称一致
                 2.Map集合:直接使用,键名 和参数占位符名称一致
                 3.Collection:封装为Map集合, 可以使用@Param注解,替换Map集合中默认的arg键名
                    map.put("arg0",collection集合);
                    map.put("collection",collection集合);
                 4.List:封装为Map集合, 可以使用@Param注解,替换Map集合中默认的arg键名
                     map.put("arg0",list集合);
                     map.put("collection",list集合);
                     map.put("list",list集合);
                 5.Array:封装为Map集合, 可以使用@Param注解,替换Map集合中默认的arg键名
                     map.put("arg0",数组);
                     map.put("array",数组);
                 6.其他类型:直接使用
             * 多个参数:封装为Map集合,可以使用@Param注解,替换Map集合中默认的arg键名
                 map.put("arg0",参数值1)
                 map.put("param1",参数值1)
                 map.put("param2",参数值2)
                 map.put("arg1",参数值2)
               -----------------@Param("name")
                 map.put("name",参数值1)
                 map.put("param1",参数值1)
                 map.put("param2",参数值2)
                 map.put("arg1",参数值2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 传递多个参数时,一般有以下几种方法: 1. Map 类型 使用 Map 类型传递参数,可以将多个参数放入一个 Map 中,然后将 Map 作为参数传递给 MyBatis,如下所示: ``` Map<String, Object> paramMap = new HashMap<>(); paramMap.put("param1", param1); paramMap.put("param2", param2); List<MyObject> list = sqlSession.selectList("com.example.selectByParam", paramMap); ``` 在 SQL 语句中,则可以通过 `${key}` 的方式获取 Map 中的值,如下所示: ``` <select id="selectByParam" resultType="MyObject"> SELECT * FROM my_table WHERE column1 = #{param1} AND column2 = #{param2} </select> ``` 2. @Param 注解 使用 @Param 注解传递多个参数,可以将多个参数在方法中使用 @Param 注解进行命名,然后在 SQL 语句中通过 `${paramName}` 的方式获取对应的值,如下所示: ``` List<MyObject> selectByParam(@Param("param1") String param1, @Param("param2") String param2); ``` 在 SQL 语句中,则可以通过 `${paramName}` 的方式获取参数的值,如下所示: ``` <select id="selectByParam" resultType="MyObject"> SELECT * FROM my_table WHERE column1 = #{param1} AND column2 = #{param2} </select> ``` 3. POJO 类型 使用 POJO 类型传递多个参数,可以将多个参数封装成一个 POJO 对象,然后将 POJO 对象作为参数传递给 MyBatis,如下所示: ``` public class ParamObject { private String param1; private String param2; //getter and setter } ParamObject paramObject = new ParamObject(); paramObject.setParam1(param1); paramObject.setParam2(param2); List<MyObject> list = sqlSession.selectList("com.example.selectByParam", paramObject); ``` 在 SQL 语句中,则可以通过 `#{paramName}` 的方式获取 POJO 对象中对应属性的值,如下所示: ``` <select id="selectByParam" resultType="MyObject"> SELECT * FROM my_table WHERE column1 = #{param1} AND column2 = #{param2} </select> ``` 以上三种方法均可以实现传递多个参数,具体使用哪种方法,可以根据实际情况进行选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值