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

相关文章

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、