MyBatis获取参数值的两种方式详解

 更新时间:2023年03月29日 09:09:06   作者:钟楼小奶糕6  
本文主要介绍了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获取参数值的两种方式

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

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

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

①在ParameterMapper接口上

②在ParameterMapper.xml上

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

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

③测试

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

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

①在ParameterMapper接口中

②在 ParameterMapper.xml配置类

③测试

3.map集合类型的参数

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

①在ParameterMapper接口中

②在 ParameterMapper.xml配置类

③测试

4.实体类类型的参数

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

①在ParameterMapper接口中

②在 ParameterMapper.xml配置类

③测试

5.使用@Param标识参数

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

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

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

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

①在ParameterMapper接口中

②在 ParameterMapper.xml配置类

③测试

 到此这篇关于MyBatis获取参数值的两种方式详解的文章就介绍到这了,更多相关MyBatis获取参数值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 我用java实现了王者荣耀的皮肤和英雄技能

    我用java实现了王者荣耀的皮肤和英雄技能

    上篇文章主要实现了创建英雄,创建野怪,创建装备.并且实现了简单的刷怪,购买装备等.本篇文章我优化了我的操作界面,并且实现了英雄技能,英雄皮肤等,需要的朋友可以参考下
    2021-05-05
  • 基于SpringBoot实现大文件分块上传功能

    基于SpringBoot实现大文件分块上传功能

    这篇文章主要介绍了基于SpringBoot实现大文件分块上传功能,实现原理其实很简单,核心就是客户端把大文件按照一定规则进行拆分,比如20MB为一个小块,分解成一个一个的文件块,然后把这些文件块单独上传到服务端,需要的朋友可以参考下
    2024-09-09
  • Mybatis 实现一个搜索框对多个字段进行模糊查询

    Mybatis 实现一个搜索框对多个字段进行模糊查询

    这篇文章主要介绍了Mybatis 实现一个搜索框对多个字段进行模糊查询,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SpringBoot项目实现短信发送接口开发的实践

    SpringBoot项目实现短信发送接口开发的实践

    本文主要介绍了SpringBoot项目实现短信发送接口开发的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • java http token请求代码实例

    java http token请求代码实例

    这篇文章主要介绍了java http token请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java Http的基础概念了解

    Java Http的基础概念了解

    这篇文章主要介绍了Java Http的基础概念,HTTP协议是建立在TCP协议之上的,这个程序是通过TCP编程来构建一个简单的Http服务器,需要的朋友可以参考下
    2023-04-04
  • java设计模式之桥接模式(Bridge)

    java设计模式之桥接模式(Bridge)

    这篇文章主要为大家详细介绍了java设计模式之桥接模式Bridge,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 如何使用Java调用Spark集群

    如何使用Java调用Spark集群

    这篇文章主要介绍了如何使用Java调用Spark集群,我搭建的Spark集群的版本是2.4.4,本文结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • SpringMVC的简单传值(实现代码)

    SpringMVC的简单传值(实现代码)

    下面小编就为大家带来一篇SpringMVC的简单传值(实现代码)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • Java cookie和session会话技术介绍

    Java cookie和session会话技术介绍

    session的工作原理和cookie非常类似,在cookie中存放一个sessionID,真实的数据存放在服务器端,客户端每次发送请求的时候带上sessionID,服务端根据sessionID进行数据的响应
    2023-04-04

最新评论