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

相关文章

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

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