广告
返回顶部
首页 > 资讯 > 精选 >Mybatis如何获取参数值和查询功能
  • 475
分享到

Mybatis如何获取参数值和查询功能

2023-07-05 14:07:42 475人浏览 安东尼
摘要

这篇文章主要介绍了mybatis如何获取参数值和查询功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis如何获取参数值和查询功能文章都会有所收获,下面我们一起来看看吧。一、MyBatis的增删改查1

这篇文章主要介绍了mybatis如何获取参数值和查询功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis如何获取参数值和查询功能文章都会有所收获,下面我们一起来看看吧。

一、MyBatis的增删改查

1.1、新增

<!--int insertUser();--><insert id="insertUser">    insert into t_user values(null,'admin','123456',23,'男')</insert>

1.2、删除

<!--int deleteUser();--><delete id="deleteUser">    delete from t_user where id = 1</delete>

1.3、修改

<!--int updateUser();--><update id="updateUser">    update t_user set username='ybc',passWord='123' where id = 6</update>

1.4、查询一个实体类对象

<!--User getUserById();--><select id="getUserById" resultType="com.SSM.mybatis.bean.User">    select * from t_user where id = 2</select>

1.5、查询list集合

<!--List<User> getUserList();--><select id="getUserList" resultType="com.ssm.mybatis.bean.User">    select * from t_user</select>

注意: 查询的标签select必须设置属性resultType或resultMap,用于设置实体类和数据库表的映射关系

resultType:自动映射,用于属性名和表中字段名一致的情况

resultMap:自定义映射,用于一对多或多对一或字段名和属性名不一致的情况

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

MyBatis获取参数值的两种方式:${}#{}

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

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

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

2.1、单个字面量类型的参数

若 mapper 接口中的方法参数为单个的字面量类型

此时可以使用 ${}#{} 以任意的名称获取参数的值,注意 ${} 需要手动加单引号

    <!--User getUserByUsername(String username);-->    <select id="getUserByUsername" resultType="User">        <!--select * from t_user where username = '${username}'-->        select * from t_user where username = #{username}    </select>

2.2、多个字面量类型的参数

若mapper接口中的方法参数为多个时

此时MyBatis会自动将这些参数放在一个map集合中,以arg0,arg1...为键,以参数为值、以 param1,param2...为键,以参数为值;

因此只需要通过 ${}#{} 访问map集合的键就可以获取相 对应的值,注意 ${} 需要手动加单引号

    <!--User checkLogin(String username, String password);-->    <select id="checkLogin" resultType="User">        <!--select * from t_user where username = '${arg0}' and password = '${arg1}'-->        <!--select * from t_user where username = #{param1} and password = #{param2}-->        select * from t_user where username = #{arg0} and password = #{arg1}     </select>

2.3、map集合类型的参数

若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在 map中

只需要通过 ${} #{} 访问map集合的键就可以获取相对应的值,注意 ${} 需要手动加单引号

    <!--User checkLoginByMap(Map<String ,Object> map);-->    <select id="checkLoginByMap" resultType="User">        <!--select * from t_user where username = '${username}' and password = '${password}'-->        select * from t_user where username = #{username} and password = #{password}    </select>

2.4、实体类类型的参数

若mapper接口中的方法参数为实体类对象时

此时可以使用 ${} #{} ,通过访问实体类对象中的属性名获取属性值,注意 ${} 需要手动加单引号

    <!--void insertUser(User user);-->    <insert id="insertUser" >        insert into t_user values(null,#{username},#{password},#{age},#{gender},#{email})    </insert>

2.5、使用@Param标识参数

可以通过 @Param 注解标识mapper接口中的方法参数

此时,会将这些参数放在map集合中,以@Param注解的value属性值为键,以参数为值;以 param1,param2...为键,以参数为值;

只需要通过 ${} #{} 访问map集合的键就可以获取相对应 的值, 注意 ${} 需要手动加单引号

    <!--User checkLoginByParam(@Param("username") String username, @Param("password") String password);-->    <select id="checkLoginByParam" resultType="User">        <!--select * from t_user where username = '${username}' and password = '${password}'-->        select * from t_user where username = #{username} and password = #{password}    </select>

三、MyBatis的各种查询功能

3.1、查询一个实体类对象

package com.ssm.mybatis.mapper; import com.ssm.mybatis.pojo.User;import org.apache.ibatis.annotations.Param; import java.util.List;  public interface SelectMapper {        User getUserById(@Param("id") int id);}
<!--User getUserById(@Param("id") int id);--><select id="getUserById" resultType="User">    select * from t_user where id = #{id}</select>
    @Test    public void testGetUserById() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         User user = mapper.getUserById(1);        System.out.println(user);    }

3.2、查询一个list集合

        List<User> getUserList();
    <!--List<User> getUserList();-->    <select id="getUserList" resultType="User">        select * from t_user    </select>
    @Test    public void testGetUserList() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         List<User> userList = mapper.getUserList();        for (User user : userList) {            System.out.println(user);        }    }

当查询的数据为多条时,不能使用实体类作为返回值,否则会抛出异常TooManyResultsException;

但是若查询的数据只有一条,可以使用实体类或集合作为返回值

3.3、查询单个数据

        Integer getCount();
     <!--Integer getCount();-->    <!--        在MyBatis中,对于Java中常用的类型都设置了类型别名        例如: Integer: int, integer        例如: int: _int, _integer        例如: Map: map              List: list    -->    <select id="getCount" resultType="Integer">        select count(*) from t_user    </select>
    @Test    public void testGetCount() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         Integer count = mapper.getCount();        System.out.println("用户总数=" + count);    }

3.4、查询一条数据为map集合

        Map<String, Object> getUserByIdToMap(@Param("id") Integer id);
    <!--Map<String, Object> getUserByIdToMap(@Param("id") int id);-->    <select id="getUserByIdToMap" resultType="map">        select * from t_user where id = #{id}    </select>
    @Test    public void testGetUserByIdToMap() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         Map<String, Object> map = mapper.getUserByIdToMap(1);        System.out.println(map);        //结果:{password=123456, gender=男, id=1, age=21, email=123456@qq.com, username=张三}    }

3.5、查询多条数据为map集合

方式一

        @MapKey("id")    List<Map<String, Object>> getAllUserToMap();
    <!--Map<String, Object> getAllUserToMap();-->    <select id="getAllUserToMap" resultType="map">        select * from t_user    </select>
    @Test    public void testGetAllUserToMap() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         List<Map<String, Object>> allUserToMap = mapper.getAllUserToMap();         for (Map<String, Object> map : allUserToMap) {            System.out.println(map);        }    }

方式二

        @MapKey("id")    Map<String, Object> getAllUserToMap();
    <!--Map<String, Object> getAllUserToMap();-->    <select id="getAllUserToMap" resultType="map">        select * from t_user    </select>
    @Test    public void testGetAllUserToMap() {        SqlSession sqlSession = SqlSessionUtil.getSqlSession();        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);         Map<String, Object> map = mapper.getAllUserToMap();        System.out.println(map);        //{         // 1={password=123456, gender=男, id=1, age=21, email=123456@qq.com, username=张三},         // 2={password=123456, gender=女, id=2, age=19, email=123456@qq.com, username=老六}         // }    }

关于“Mybatis如何获取参数值和查询功能”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Mybatis如何获取参数值和查询功能”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Mybatis如何获取参数值和查询功能

本文链接: https://www.lsjlt.com/news/352257.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mybatis如何获取参数值和查询功能
    这篇文章主要介绍了Mybatis如何获取参数值和查询功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis如何获取参数值和查询功能文章都会有所收获,下面我们一起来看看吧。一、MyBatis的增删改查1...
    99+
    2023-07-05
  • Mybatis获取参数值和查询功能的案例详解
    目录一、MyBatis的增删改查1.1、新增1.2、删除1.3、修改1.4、查询一个实体类对象1.5、查询list集合二、MyBatis获取参数值的两种方式2.1、单个字面量类型的参...
    99+
    2023-03-21
    Mybatis获取参数值 Mybatis查询
  • es6如何获取查询参数
    这篇文章将为大家详细讲解有关es6如何获取查询参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。获取查询参数多年来,我们编写粗糙的正则表达式来获取查询字符串值,但那些日子...
    99+
    2022-10-19
  • Spring Aop 如何获取参数名参数值
    前言: 有时候我们在用Spring Aop面向切面编程,需要获取连接点(JoinPoint)方法参数名、参数值。 环境: Mac OSX Intellij IDEA...
    99+
    2022-11-12
  • php如何获取mysql查询的某个值
    这篇文章主要介绍“php如何获取mysql查询的某个值”,在日常操作中,相信很多人在php如何获取mysql查询的某个值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何获取mysql查询的某个值”的疑...
    99+
    2023-07-05
  • SpringAOP 如何通过JoinPoint获取参数名和值
    SpringAOP 通过JoinPoint获取参数名和值 在Java8之前,代码编译为class文件后,方法参数的类型固定,但是方法名称会丢失,方法名称会变成arg0、arg1….。...
    99+
    2022-11-12
  • myBatis如何在插入前/插入后查询获取某个字段的值
    这篇文章主要介绍了myBatis如何在插入前/插入后查询获取某个字段的值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
    99+
    2022-10-19
  • java如何获取url中的参数值
    在Java中获取URL中的参数值可以使用`java.net.URLDecoder`类的`decode`方法来解码URL中的参数。具体...
    99+
    2023-08-08
    java
  • mysql如何查看配置参数和获取帮助
    下面讲讲关于mysql如何查看配置参数和获取帮助,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完mysql如何查看配置参数和获取帮助这篇文章你一定会有所受益。查看配置参数:SHO...
    99+
    2022-10-18
  • 如何使用mybatis-plus实现分页查询功能
    今天就跟大家聊聊有关使用mybatis-plus如何实现分页查询功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 引入依赖...
    99+
    2022-11-13
  • 如何使用java过滤器获取所有参数值
    要使用Java过滤器获取所有参数值,可以按照以下步骤进行操作:1. 创建一个类实现`javax.servlet.Filter`接口,...
    99+
    2023-09-06
    java
  • 利用mybatis如何实现一个一对多查询功能
    利用mybatis如何实现一个一对多查询功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.需求分析:在开发中会遇到这样一个问题,查询订单信息,级联查询出用户信息和订单明...
    99+
    2023-05-31
    mybatis 一对多查询
  • php如何查询数据库并截取字段值
    本篇内容介绍了“php如何查询数据库并截取字段值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、连接数据库在PHP中,首先需要连接数据库才...
    99+
    2023-07-05
  • @Value如何获取yml和properties配置参数
    @Value获取yml和properties配置参数 Yml: #定时任务配置 application: xxl: job: ...
    99+
    2022-11-12
  • Mybatis如何通过出入Map参数作为条件进行查询
    目录通过出入Map参数作为条件进行查询Mybatis查询传递Map参数使用场景传参持久层生成sql查询结果通过出入Map参数作为条件进行查询 映射文件中查询语句部分: <!--...
    99+
    2022-11-13
  • thinkphp5如何实现查询计数功能
    这篇“thinkphp5如何实现查询计数功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“thinkphp5如何实现查询计数...
    99+
    2023-07-05
  • C#如何连接SQL数据库和查询数据功能
    这篇文章将为大家详细讲解有关C#如何连接SQL数据库和查询数据功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。大数据时代在编程可能需要用到一些文本内容,不可能全部写到代码里,不好更改,用户也不方便使用所...
    99+
    2023-06-15
  • mybatis-plus如何判断参数是否为空并作为查询条件
    目录判断参数是否为空并作为查询条件只需要在eq条件构造器中只需要添加 一句判断即可StringUtils.isNullOrEmpty()方法作用是附上 isNullOrEmpty()...
    99+
    2022-11-13
  • Vue中$router.push()路由切换及如何传参和获取参数
    目录1、路由的两种常见方式2、传参和获取参数(query和params)总结 1、路由的两种常见方式 1)声明式: <router-link to="/login"...
    99+
    2023-05-13
    vue $router.push()路由切换 vue路由切换页面 vue 路由切换
  • JavaScript如何从数组中获取最大值和最小值
    小编给大家分享一下JavaScript如何从数组中获取最大值和最小值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!从数组中获取最...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作