mybatis中的parameterType和resultType两个参数的说明

2024-06-17 12:48

本文主要是介绍mybatis中的parameterType和resultType两个参数的说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mybatis中的parameterType和resultType两个参数的指向:
parameterType:
parameterType指的是传入参数的数据类型,一般作为增删改查的限制条件值,被where、in等限定。外部传入了什么类型参数,这里就写什么类型。
对于包装类的数据传入,获取其内部信息,该参数直接作为内部信息的归属指向。如:包装类x传入,且想遍历包装类内的y集合,则parameterType=“com.aaa.domain.x”,内部foreach collection=“y”。
并且,在继续想对包装类的内部对象的属性进行操作时(也就是对其打点再调用属性),可利用ognl表达式指向#{}内的参数,是对#{}内这种传入的赋值参数的出身做详细说明。
如:

<select id="selectTownByPacking" parameterType="com.aaa.domain.Group" resultType="com.aaa.domain.Town">select * from town where tid=#{town.tid}</select>

上面例子中,#{}内的属性加上前面设定的parameterType传入参数类型,表示com包下的aaa包下的domian包下的Group实体类中的user对象的tid属性。

resultType:
resultType指的是接收参数的数据类型,一般作为查询的获取字段信息(主要是一般只有查询会有返回的结果集),被select所限定。
数据库利用mybatis、通过sql语句、把数据封装到的目标对象,是对接收数据的地点目标的详细说明。
如:resultType=“com.bbb.domain.Group”,而在Group中包含着user对象的get、set方法,其中的user对象所属的User类中的name属性,在数据库中为umane。如果要将该umane封装到User的name属性中,则需要对uname起别名为"user.name",这样,封装的该数据就会按照com.bbb.domain.Group+user.name层层深入找到name属性进行赋值。
方法1举例:

<select id="findTown" resultType="com.bbb.domain.Town">SELECT tid,tname,t_cid,c.cid AS 'country.cid',c.cname AS 'country.cname' FROM town t LEFT OUTER JOIN country c ON t.`t_cid` = c.cid;</select>

或者利用方法2:先定义一个resultMap,如下:

<resultMap id="demo" type="com.bbb.domain.Town"><!--id的特殊格式--><id column="tid" property="tid"/><!--未在对象内,可直接找到的属性--><result column="tname" property="tname"/><result column="t_cid" property="t_cid"/><!--对象--><association property="country" javaType="com.bbb.domain.Country"><!--对象内属性--><result column="cid" property="cid"/><result column="cname" property="cname"/></association></resultMap><!--完成resultMap的定义后,将其赋值给select的结果接收集中--><select id="findTown" resultMap="demo">--         因为上面已经进行属性名转换,这里的sql语句则可以直接查询select * FROM town t LEFT OUTER JOIN country c ON t.`t_cid` = c.cid;</select>

这篇关于mybatis中的parameterType和resultType两个参数的说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

mybatis映射器配置小结

《mybatis映射器配置小结》本文详解MyBatis映射器配置,重点讲解字段映射的三种解决方案(别名、自动驼峰映射、resultMap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定... 目录select中字段的映射问题使用SQL语句中的别名功能使用mapUnderscoreToCame

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my

MyBatis ParameterHandler的具体使用

《MyBatisParameterHandler的具体使用》本文主要介绍了MyBatisParameterHandler的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、概述二、源码1 关键属性2.setParameters3.TypeHandler1.TypeHa

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片