2.7 Mybatis——返回值处理
目录
1.返回值为自定义对象类型
2. 返回值为自定义对象的一个属性
3.返回值为自定义对象多个属性的值
方法一:使用HashMap接收
方法二:使用对象接收
方法三:使用DTO设计模式接收
拓展:DTO设计模式
4.使用DTO设计模式接收两个表中的多个属性
1.返回值为自定义对象类型
2. 返回值为自定义对象的一个属性
返回值类型为具体返回属性的数据类型。
(1)Dao层方法:
(2)Dao层对应的映射文件:
(3)运行测试:
3.返回值为自定义对象多个属性的值
方法一:使用HashMap接收
dao层方法:
dao层的映射文件:
运行测试:
测试结果:
方法二:使用对象接收
dao层方法:
//返回值为自定义对象多个属性的值——使用自定义对象User接收User getUnameAgeById2(int id);
对应映射文件
<!--返回值为自定义对象多个属性的值——使用自定义对象User接收--><select id="getUnameAgeById2" resultType="com.zx.pojo.User">select uname,age from user where id=#{id}</select>
运行测试:
@Test //User对象接收会将不需要的属性也展示出来,不过值为nullpublic void getUnameAgeById2Test(){SqlSession sqlSession = MybatisUtil.getSqlSession();UserDao userDao = sqlSession.getMapper(UserDao.class);User user = userDao.getUnameAgeById2(9);System.out.println(user);}
测试结果:
方法三:使用DTO设计模式接收
首先设计一个临时新类,属性为要查询的目标属性。
dao层方法:
方法对应的映射文件:
运行测试:
运行结果:
拓展:DTO设计模式
拓展:DTO设计模式——将需要的查询的属性临时封装在一个新的实体类,作为属性建立set、get方法,重写toString方便打印。
4.使用DTO设计模式接收两个表中的多个属性
实例:查询user表的用户名(uname)和年龄(age),以及groups表对应的组名(gname)。
(1)新建一个临时新类,属性为所要查询到目标属性,写出对应的set、get方法,重写toString方法。
public class Temp {private String uname;//user表属性private int age;private String gname;//groups表属性 }
(2)dao层对应方法
//返回值为两个表中的属性——使用DTO设计模式,查询user表和groups表的属性 Temp getUnameAgeGnameById(int id);
(3) 方法对应的映射文件:
<!--返回值为两个表中的属性——使用DTO设计模式--><select id="getUnameAgeGnameById" resultType="com.zx.pojo.Temp">SELECT uname,age,gname from user u,groups g where u.gid=g.gid and u.id=#{id};</select>
(4)运行测试:
@Testpublic void getUnameAgeGnameByIdTest(){SqlSession sqlSession = MybatisUtil.getSqlSession();UserDao userDao = sqlSession.getMapper(UserDao.class);Temp temp = userDao.getUnameAgeGnameById(9);System.out.println(temp); }
测试结果:
2.7 Mybatis——返回值处理相关推荐
- 深入了解MyBatis返回值
深入了解MyBatis返回值 想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...
- mybatis返回值多个对象
SpringBoot+mysql+Mybatis返回值对象中含有对象集合 1.对象personalHistoryInfo public class PersonalHistoryInfo {/** ...
- Mybatis返回值
默认配置情况: 默认情况下,mybatis 的 update 操作返回值是记录的 matched 的条数,并不是影响的记录条数. insert和delete是受影响的条数 int flag;//roo ...
- mysql mybatis 返回值类型_使用MyBatis时接收值和返回值选择Map类型或者实体类型
MyBatis作为现近JavaEE企业级项目开发中常用的持久层框架之一,以其简洁高效的ORM映射和高度的SQL的自由性被广大开发人员认可.Mybatis在接收系统传来的参数和返回的参数时主要可以有Ma ...
- Mybatis返回值类型为Map时,空值给过滤掉了
真恶心,什么问题都遇上了,寻思着终于拿到数据了,一看,数据还不全. 解决方法: 在mybatis.xml配置文件中加上:<setting name="callSettersOnNull ...
- 关于mybatis返回值使用包装类型还是基本类型
有时候,sql需要返回一些数值型的数据,包装类型与基本类型如何选择 字段对应的类型要使用包装类型,不要使用基本类型 因为,如果字段为null的话,拆箱会报空指针异常 聚合函数统计数目的可以使用基本类型 ...
- MyBatis更新语句返回值
mybatis返回值为匹配的行数,若想改为受影响行数加jdbc.url后加上 &useAffectedRows=true
- mybatis delete返回值_从零开始学习在IntelliJ IDEA 中使用mybatis
纯新手,打算学习下mybatis的用法,在官网和教程上看了资料,整理下笔记. 既然是从零开始,就是不依赖任何框架和模板,从空白项目开始.在IDEA上先新建一个空的java项目. 1. 添加项目依赖 需 ...
- MyBatis查询结果resultType返回值类型详细介绍
一.返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值String getEmpNameById(I ...
最新文章
- getPath()和getResource()找不到文件(NullPointerException)的原因(idea创建properties文件)
- 软设考试笔记--UML建模
- ios如何看idfv_如何无中生有资源搜索神器
- linux初始化进程
- c语言中初始值的作用,初始C语言学习
- BootStrap基本模板
- 第一周(220302-220309):Ps工具栏功能作用总结、常用快捷键汇总、色彩调节方法及原理总结
- 2022年数学建模国赛(A题/B题/C题)评阅要点
- 智能dns调研及bind9搭建
- iOS开发 - 给Label加下划线、中划线
- Scapy的介绍(一)
- 《Python数据科学入门》之数据库的使用(第4章)
- python pty模块 - 作用1 - 虚拟一个串口
- 解决 Elasticsearch 分页查询记录超过10000时异常
- 【市场分析1】FinTech之香港虚拟银行VB
- No.1 STM32F429IGT6开发板简介 (STM32F429/F767/H743)
- 一篇文章讲清楚什么是数据网格和数据网格的原则
- YOLOV5 模型和代码修改——针对小目标识别
- 2021年熔化焊接与热切割找解析及熔化焊接与热切割模拟考试
- 【linux】free 命令显示 swap 信息异常处理
热门文章
- java列出最简真分数序列_Java 列出最简真分数序列 循环
- 有了服务器,域名,如何将静态网页放到服务器上,让所有人都能访看到?
- 心智模型学习:如何探究Y里的why(下)
- 笔记本用联通3G上网卡上网掉线
- turtlebot深度相机_Turtlebot入门-测试Kinect
- 二进制转十进制的两种方法
- 记一次 群晖利用calibre-web 实现 电子书管理 之 technosoft2000/calibre-web
- 已解决:springboot 用mybatis-generator自动生成bean和dao
- 线程池+进程池爬虫—深圳房价+数据分析+pyecharts可视化
- java tree 树的代码实现