目录

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——返回值处理相关推荐

  1. 深入了解MyBatis返回值

    深入了解MyBatis返回值 想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和r ...

  2. mybatis返回值多个对象

    SpringBoot+mysql+Mybatis返回值对象中含有对象集合 1.对象personalHistoryInfo ​ public class PersonalHistoryInfo {/** ...

  3. Mybatis返回值

    默认配置情况: 默认情况下,mybatis 的 update 操作返回值是记录的 matched 的条数,并不是影响的记录条数. insert和delete是受影响的条数 int flag;//roo ...

  4. mysql mybatis 返回值类型_使用MyBatis时接收值和返回值选择Map类型或者实体类型

    MyBatis作为现近JavaEE企业级项目开发中常用的持久层框架之一,以其简洁高效的ORM映射和高度的SQL的自由性被广大开发人员认可.Mybatis在接收系统传来的参数和返回的参数时主要可以有Ma ...

  5. Mybatis返回值类型为Map时,空值给过滤掉了

    真恶心,什么问题都遇上了,寻思着终于拿到数据了,一看,数据还不全. 解决方法: 在mybatis.xml配置文件中加上:<setting name="callSettersOnNull ...

  6. 关于mybatis返回值使用包装类型还是基本类型

    有时候,sql需要返回一些数值型的数据,包装类型与基本类型如何选择 字段对应的类型要使用包装类型,不要使用基本类型 因为,如果字段为null的话,拆箱会报空指针异常 聚合函数统计数目的可以使用基本类型 ...

  7. MyBatis更新语句返回值

    mybatis返回值为匹配的行数,若想改为受影响行数加jdbc.url后加上 &useAffectedRows=true

  8. mybatis delete返回值_从零开始学习在IntelliJ IDEA 中使用mybatis

    纯新手,打算学习下mybatis的用法,在官网和教程上看了资料,整理下笔记. 既然是从零开始,就是不依赖任何框架和模板,从空白项目开始.在IDEA上先新建一个空的java项目. 1. 添加项目依赖 需 ...

  9. MyBatis查询结果resultType返回值类型详细介绍

    一.返回一般数据类型 比如要根据 id 属性获得数据库中的某个字段值. mapper 接口: // 根据 id 获得数据库中的 username 字段的值String getEmpNameById(I ...

最新文章

  1. getPath()和getResource()找不到文件(NullPointerException)的原因(idea创建properties文件)
  2. 软设考试笔记--UML建模
  3. ios如何看idfv_如何无中生有资源搜索神器
  4. linux初始化进程
  5. c语言中初始值的作用,初始C语言学习
  6. BootStrap基本模板
  7. 第一周(220302-220309):Ps工具栏功能作用总结、常用快捷键汇总、色彩调节方法及原理总结
  8. 2022年数学建模国赛(A题/B题/C题)评阅要点
  9. 智能dns调研及bind9搭建
  10. iOS开发 - 给Label加下划线、中划线
  11. Scapy的介绍(一)
  12. 《Python数据科学入门》之数据库的使用(第4章)
  13. python pty模块 - 作用1 - 虚拟一个串口
  14. 解决 Elasticsearch 分页查询记录超过10000时异常
  15. 【市场分析1】FinTech之香港虚拟银行VB
  16. No.1 STM32F429IGT6开发板简介 (STM32F429/F767/H743)
  17. 一篇文章讲清楚什么是数据网格和数据网格的原则
  18. YOLOV5 模型和代码修改——针对小目标识别
  19. 2021年熔化焊接与热切割找解析及熔化焊接与热切割模拟考试
  20. 【linux】free 命令显示 swap 信息异常处理

热门文章

  1. java列出最简真分数序列_Java 列出最简真分数序列 循环
  2. 有了服务器,域名,如何将静态网页放到服务器上,让所有人都能访看到?
  3. 心智模型学习:如何探究Y里的why(下)
  4. 笔记本用联通3G上网卡上网掉线
  5. turtlebot深度相机_Turtlebot入门-测试Kinect
  6. 二进制转十进制的两种方法
  7. 记一次 群晖利用calibre-web 实现 电子书管理 之 technosoft2000/calibre-web
  8. 已解决:springboot 用mybatis-generator自动生成bean和dao
  9. 线程池+进程池爬虫—深圳房价+数据分析+pyecharts可视化
  10. java tree 树的代码实现