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

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

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

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

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

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL