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

MyBatis配置相关模板

1.核心配置文件的模板

 2.映射文件模板

 3.封装SqlSessionUtils工具类

package com.atguigu.mybatis.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;

public class SqlSessionUtils {
   public static SqlSession getSqlSession(){
      SqlSession sqlSession = null;
      try {
         InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
         sqlSession = sqlSessionFactory.openSession(true);
      } catch (IOException e) {
         e.printStackTrace();
      }
      return sqlSession;
   }
}

 MyBatis获取参数值的两种方式

  1. MyBatis获取参数值的两种方式:${}#{}
  2. ${}本质是字符串拼接,#{}的本质是占位符赋值
  3. ${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号。
  4. #{}使用占位符赋值的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要自动加单引号。

1.单个字面量类型的参数

  1. 若mapper接口的方法参数单个的字面量类型,此时可以使用${}和#{}以任意的名称获取参数值。${}需要手动加引号

①在ParameterMapper接口上

②在ParameterMapper.xml上

  1. 用#{username}- username可任意替换

        2.用’${username}’ - username可任意替换

 

 ③测试

 2.多个字面量类型的参数

  1. 若mapper接口的方法参数是多个时,此时MyBatis会自动的将这些参数放在一个map集合中以arg0,arg1…为键,以参数为值或者以param1,param2为键,以参数为值
  2. 此时通过${}和#{}访问map集合的键会获取对应的值

①在ParameterMapper接口中

 ②在 ParameterMapper.xml配置类

 ③测试

 3.map集合类型的参数

  1. 若map接口的方法参数为多个,可以手动创建map集合,通过#{}和${}访问map集合的键获取对应的值

①在ParameterMapper接口中

②在 ParameterMapper.xml配置类

 ③测试

 4.实体类类型的参数

  1. 若mapper接口的方法参数是实体类对象,可以使用${}或#{}通过对象的属性名获取属性值。

①在ParameterMapper接口中

 ②在 ParameterMapper.xml配置类

 ③测试

 5.使用@Param标识参数

  1. 可以通过@Param注解标识mapper接口的方法参数,此时参数会放在map集合中

         ①以@Param注解的value属性值为键,参数值为值

         ②以param1,param2为键。以参数为值

      2.通过#{}或${}访问map集合的键可以获取对应的值

①在ParameterMapper接口中

 ②在 ParameterMapper.xml配置类

 ③测试

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值