Mybatis映射文件——ParameterType

2023-12-07 09:48

本文主要是介绍Mybatis映射文件——ParameterType,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

输入映射ParameterType

指定输入参数的java类型,可以使用别名或者类的全限定名。它可以接受简单类型、pojo对象、HashMap

传递简单类型

在这里插入图片描述

传入POJO类型

在这里插入图片描述

传入POJO包装对象:传递比较复杂的信息

传入map对象

1接口中声明方法:

   public List<User> findUserByMap(Map<String,Object> map);

2映射文件修改

<!--//通过Map查询--><select id="findUserByMap" parameterType="hashmap" resultType="user">select * from user u where username like '%${username}%' and sex=#{sex};</select>

3测试

 /** 多条件查询* */@Testpublic void test2() throws IOException {UserMapper userMapper=session.getMapper(UserMapper.class);Map<String,Object> map=new HashMap<String, Object>();map.put("username","张");map.put("sex","1");List<User> list=userMapper.findUserByMap(map);System.out.println(list);}

输出映射resultType/resultMap

resultType:使用resultType进行结果映射时,查询的列名和映射的pojo属性名完全一致,该列才能映射成功。如果查询的列名和映射的pojo属性名全部不一致,则不会创建pojo对象,如果查询的列名和映射的pojo属性有一个不一致,就会创建pojo对象。

输出简单类型

当输出结果只有一列时,可以使用ResultType指定简单类型作为输出结果类型。
1、UserMapper中创建一个借口,查询用户人数

 /*** 返回用户个数* @param vo* @return*/public int findUserCount(UserQuerVO vo);

2、UserMapper.xml中设置方法

 <!--查找用户的个数--><!-- 设置返回数据为基本数据类型--><select id="findUserCount" parameterType="UserQuerVO" resultType="int">select  count(*) from user  where  sex=#{user.sex};</select>

3、测试

public class Demo6 {SqlSession session;@Beforepublic void before() throws IOException {System.out.println("before......获取session");
//      *  a)	读取配置文件;InputStream is= Resources.getResourceAsStream("SqlMapConfig.xml");
//        *  b)	通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂。SqlSessionFactory factory= new SqlSessionFactoryBuilder().build(is);session=factory.openSession();}@Afterpublic void after(){session.close();}/*** 查询该性别的人数* @throws IOException*/@Testpublic void test1() throws IOException {UserMapper userMapper=session.getMapper(UserMapper.class);//通过模型的包装类来查询用户UserQuerVO query=new UserQuerVO();User user=new User();user.setSex("1");query.setUser(user);int count=userMapper.findUserCount(query);System.out.println("人数为"+count);}}

ResultMap

如果查询出来的列名和属性名不一致,通过定义一个resultMap将列名和pojo属性名之间做一个映射关系
1、定义resultMap

/*** 用resultMap类型为返回值类型* @param UserId* @return*/public User findUserByIdResultMap(int UserId);

2、使用resultMap作为statement的输出映射类型。

 <!--设置返回数据类型为resultMap--><resultMap id="userResultMap" type="user"><id property="id" column="id_"></id><result property="username" column="username_"></result><result property="sex" column="sex_"></result><result property="birthday" column="birthday_"></result><result property="address" column="address_"></result></resultMap><select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap">select  id ,username username_,sex sex_,birthday birthday_,address address_from user where id=#{id};</select>

3、测试

/*** 结果类型为resultMap* @throws IOException*/@Testpublic void test2() throws IOException {UserMapper userMapper=session.getMapper(UserMapper.class);User user=userMapper.findUserByIdResultMap(10);System.out.println("查询结果"+user);}

这篇关于Mybatis映射文件——ParameterType的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/465406

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可