当前位置: 首页 > news >正文

DAO和XML文件参数和返回值

①MyBatis中resultType和resultMap的区别

1.使用MyBatis查询数据库记录时,返回类型常用的有两种:resultType和resultMap。那么两者之间有什么区别呢?

如果只是返回一个值,简单类型,比如说String或者int,那直接用resultType就行了

<select id="getUserName" resultType="java.lang.String">select user_name from t_users
</select>

2.如果sql查询结果返回的是单一记录列名和实体类中的字段名一致,可以使用resultType,MyBatis会自动把查询结果赋值给和字段名一致的字段。 如果sql查询结果返回的列名和实体类中的字段名一致,可以使用resultType,MyBatis会自动把查询结果赋值给和字段名一致的字段。

@Data
public class Users {private Long id;private String userName;private Integer sex;}
<select id="getUsersType" resultType="com.zkzong.mybatis.domain.Users">select user_name userName, sex from t_users
</select>

3.如果单一记录,列不一致,sql语句中可以使用别名的方式使其一致。

当sql的列名和实体类的列名不一致,这时就可以使用resultMap了。

<resultMap id="userMap" type="User>
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>

这样把相应的数据库字段映射到创建的实体类,column代表的是数据库中字段名字,property代表的是创建的实体类中相应的字段名,也可以只修改不一样的字段名,也能得到同样的结果。

4.如果返回的是记录的多条,字段对应则用resultType="User"

但是dao中是这样写

public ArrayList<String> searchUserRoles(int userId);

5.如果返回的是记录的多条,字段不对应则用resultType="Map",而且resultMap要自定义映射。

但是dao中这样写

public ArrayList<Hashmap> searchUserRoles(int userId);

也就是多条记录是依靠dao中的返回值来定义的。

http://www.lryc.cn/news/108968.html

相关文章:

  • vue 浏览器右侧可拖拽小组件
  • SpringMvc学习笔记五
  • ORACLE-DG总结
  • 机器学习中的 K-均值聚类算法及其优缺点
  • 【数据化分析和建模】一般步骤(个人工作经验总结)
  • 视频安防监控EasyCVR平台海康大华设备国标GB28181告警布防的报文说明
  • T31开发笔记:librtmp拉流测试
  • 2308C++概念化
  • flutter开发实战-实现自定义按钮类似UIButton效果
  • 深度优先搜索|1034, 1020, 1254
  • 都市信息供求网servlet+jsp新闻广告出售java源代码mysql
  • kubeadm init:failed to pull image registry.k8s.io/pause:3.6
  • 设计模式之简单工厂模式、工厂模式、抽象工厂模式
  • C# 控制台彩色深度打印 工具类
  • Pytorch Tensor维度变换方法
  • 微信小程序之点击文字文字自动转语音进行播放,微信小程序文字识别转语音播放
  • 主动学习、半监督学习、它们之间的区别?
  • linux快速安装Rabbitmq
  • spconv1.2.1库的编译与安装
  • java+springboot+mysql企业邮件管理系统
  • [CKA]考试之一个 Pod 封装多个容器
  • iphone备份用什么软件?好用的苹果数据备份工具推荐!
  • 一语道破 python 迭代器和生成器
  • 有哪些开源和非开源的项目管理工具?
  • 实战 01|「编写互动式界面」
  • 开源社区寻找八月创作之星!你准备好了吗~
  • appuploader不是开发者账号
  • MySQL - 10、其他命令
  • 输入框长度在XSS测试中如何绕过字符长度限制
  • JVM基础篇-直接内存