【MyBatis学习05】传入参数parameterType

2024-01-23 07:48

本文主要是介绍【MyBatis学习05】传入参数parameterType,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文博客地址:http://blog.csdn.net/soonfly/article/details/63373362 (转载请注明出处)

在前面的mapper.xml的select、insert、update、delete这些元素中,我们已接触了传入参数,并通过parameterType指定传入参数的类型。注意不要和parameterMap混淆了。(parameterMap几乎很少场景下用了)

这里写图片描述

MyBatis可以使用的parameterType有基本数据类型和Java复杂数据类型。
复杂数据类型包含Java实体类、Map等。

一、基本数据类型:

包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值。

<delete id="delete" parameterType="int">delete from user where id=#{id}
</delete>

java代码:

usermapper.delete(1);
session.commit();/*对写操作进行提交*/

其实这里的”参数名”可以是任意的。因为JAVA反射只能获取方法参数的类型,但无从得知方法参数的名字的
上面这个例子把#{id}换成#{di},一样运行。当然为了便于阅读代码,还是用#{id}。

二、Map类型

在基本类型中,我们只能传入一个参数。
如果要传入多个参数怎么办?比如要查询某个价格区间的商品,那么就需要构建minPrice、maxPrice两个参数,这时可以用到Map。
通过#{map的KeyName}即可获取传入的值。

<select id="searchByPrice" parameterType="Map" resultType="Product"><![CDATA[select * from Product where price >= #{minPrice} and price <= #{maxPrice} ]]>
</select>

java调用:

SqlSession session = SqlSessionAssist.getSession();Map<String, Double> pricemap=new HashMap<String,Double>();
pricemap.put("minPrice", 1000.00);
pricemap.put("maxPrice", 6000.00);List<Product> tmpuser=session.selectList("twm.mybatisdemo.mapper.ProductMapper.searchByPrice", pricemap);
System.out.println(tmpuser.size());
session.close();

参数传递时,一定要保证sql语句中的#{minPrice}和map中的key值一样,大小写敏感。否则会报参数错误。
正是因为这个原因,所以最好是用Java实体作为传参

三、Java实体类型

通过#{属性名}即可获取传入的值。这跟map很类似。
这里要说的是内部类的传参方式 。如果有内部类存在,则用#{内部类对象名.属性名}获取传入值。

class productVo {Product pro;public Product getProduct() {return pro;}public void setProduct(Product product) {this.pro = product;}
}
<select id="searchByPrice" parameterType="productVo" resultType="Product"><![CDATA[select * from Product where price >= #{pro.minPrice} and price <= #{pro.maxPrice} ]]>
</select>

本文博客地址:http://blog.csdn.net/soonfly/article/details/63373362 (转载请注明出处)

这篇关于【MyBatis学习05】传入参数parameterType的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635712

相关文章

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

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

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验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生

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

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro