map比vo效率 mybatis_resultMap

resultmap与resulttype的区别为:对象不同、描述不同、类型适用不同

一、对象不同

1、resultmap:resultMap如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

2、resultType:resultType使用resultType进行输出映射,只有查询出来的列

看源码都要带着问题去看,比如

UserMapper.java只有接口而没有实现类,那么是如何执行的呢?mybatis中一级缓存是如何进行缓存与维护的?底层是如何执行query查询的查询后的结果是如何处理的,为什么可以将结果集自动映射到对象中去?

让我们带着上面的问题来到mybatis框架底层一探究

MyBatis 提供了XML配置和注解配置两种方式。今天就来搞搞这两种方式是如何实现的。

MyBatis 的真正强大在于它的语句映射,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBa

ResultMap2020-11-27 22:03:50

ResultMap

要解决的问题,属性名和数据库表格字段名不一致问题

在项目中,新建一个模块mybatis-02,内容和mybatis-01一样。

1、查看数据库user表的字段名

2、修改Java中的实体类,使其属性名与数据库的字段名不一致

public class User {

private int id;

private String userna

Mybatis 的输出结果封装

1.resultType 配置结果类型

1.1基本类型示例

List findAll();

User findById(Integer userId);

List findByName(String username);

int findTotal();

List findUserByVo(QueryVo vo);

Mybatis之resultMap2020-11-24 15:00:47

resultMap 元素是 MyBatis 中最重要最强大的元素。它可以让你从 90% 的 JDBC ResultSets 数据提取代码中解放出来,并在一些情形下允许你进行一些 JDBC 不支持的操作。实际上,在为一些比如连接的复杂语句编写映射代码的时候,一份 resultMap 能够代替实现同等功能的数千行代码。Re

说明

项目如果需要动态的生成SQL语句,那么语句中的字段名是一个比较麻烦的事情,虽然Entity对象和数据表一般是一比一按照驼峰命名法和下划线命名法标准转换来映射的,但是简单的将Entity对象中的属性转为字段名是一个有风险的操作

有没有哪里记录了实体类属性和数据表字段的映射关系呢

1.生命周期,和作用域,是至关重要的,因为错误的使用会导致严重的并发问题

并发问题流程图

注意:每一个sqlSession对应一个业务

在用sqlSession去写增删改相关的业务时用提交事务(sqlSession.commit();)

在每个持久层操作完毕后要将sqlSession关闭(sqlSession.close())

本文讲述获取当前项目的所有restful请求的详细信息,含url、接口描述、请求方式等信息,主要用到了swagger的相关特性,最终返回的数据格式如下:

[{

"className": "cn.miao.controller.InfoController",

"classDesc": "InfoController",

"methodName": "getTimeStam

封装MyBatis输出结果2020-08-07 22:01:51

目录一、resultType1. 简单类型(掌握)2. 对象类型(掌握)3. Map(了解)二、resultMap(了解)三、实体类属性名和列名不同1. 使用resultMap2. 使用列别名和resultType四、模糊查询like1. 第一种2. 第二种五、总结1. resultType2. resultMap3. 列名和属性名不同4. like

一、resultType

6、ResultMap

要解决的问题:属性名和字段名不一致

1、查看之前的数据库的字段名

2、Java中的实体类设计

public class User {

private int id; //id

private String name; //姓名

private String password; //密码和数据库不一样!

//构造

//set/get

//

Mybatis创建statement和结果集生成statementHandler结果集处理后记

前文:Mybatis(3)执行sql过程

statementHandler

在Mybatis的Configuration类中, 存在下面三个方法, 我们想要生成一个statment就需要通过一个statemeng的处理器

public ParameterHandler newParameterHand

Mybatis 自定义映射关系2020-06-19 21:53:31

原由

最近做项目,由于数据库的字段名和pojo对象中的名称不一样,导致 Mybatis查出来的数据没有办法直接绑定到POJO对象上,所以我就去回顾了以下mybatis的集合绑定。

代码

(4)输出参数为HashMap

<

mybatis的pageHelper分页遇上collection时,total统计会是根据sql查询出来的数量进行统计的,而我们页面上的总数应该显示我们resultMap的数量。resultMap不要使用直接嵌套结果的方式,可是使用嵌套查询:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200309102905637.png

一的一方College.java:

多的一方Student.java

College的sqlmapper文件配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
resultMapMyBatis 中用于自定义查询结果的映射方式。通过 resultMap,我们可以定义字段名和属性名的对应关系,并且可以选择性地指定要显示的列,使结果映射更加灵活和方便。使用 resultMap 可以实现字段名与属性名不一致的映射,以及关联查询时的结果处理。 需要注意的是,resultType 和 resultMap 在 select 元素中是互斥的,即不能同时存在,只能选择其中一个来定义返回类型。resultType 直接表示返回的类型,而 resultMap 则是对外部 resultMap 的引用。 使用 resultMap 的场景多种多样,可以根据实际需求灵活选择。推荐使用 resultMap,因为它更加灵活,并且在自定义结果映射方面功能更强大。 总结来说,resultMapMyBatis 中用于自定义查询结果的映射方式,可以实现字段名与属性名的对应关系,并且可以选择性地指定要显示的列,使结果映射更加灵活和方便。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MyBatisresultMap详解](https://blog.csdn.net/weixin_49707895/article/details/109564527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值