5、mybatis中的映射器
目录
1、映射器是什么?
2、自定义sql和使用的分类
2、1 根据定义sql的两种方式分类
2、2 根据使用方式分类
mybatis在实际使用时,最主要的还是映射器。这一篇大体介绍一下映射器,但是有个问题,这篇文章全是我自己对应映射器的理解,因为根据现有的资料(基本上都是复制粘贴同样的内容)去理解,我理解不了,然后就根据官网去理解,所以有了下边这些叙述,这些描述和其他的文章中的描述还是有挺多不同的,我也没有底儿到底理解的是对还是错,希望看完文章的同学能留个言 描述一下自己的看法。
1、映射器是什么?
mybatis的映射器究竟是什么呢?这个官网没有给予明确的概念,不过可以尝试从另一个角度去理解,之前说过mybatis是一个半自动的ORM框架,因为需要开发者自己去定义sql语句,自己去设置请求参数和结果集类型,但是mybatis却可以将数据在java类型与数据库之间转换,这就是映射器的功劳。基于此,以自己的理解,mybatis的映射器应该包含两部分:开发者自定义的sql和mybatis提供的自动映射的机制。
2、自定义sql和使用的分类
这个也就是常说的映射器类型,因为我觉得说映射器类型不太准确,因为映射器是一个整体的工具,而非一部分,所以才有了上边的目录,这里主要说的是定义和使用的不同方式,具体如下:
2、1 根据定义sql的两种方式分类
1)使用sql映射文件,将sql定义在xml文件中
2)将sql通过注解的方式直接定义在java代码中
2、2 根据使用方式分类
1)直接通过sqlSession调用xml文件中的sql
2)将sql映射文件和一个接口绑定,之后使用时直接调用接口即可,这种比较常用,它是通过生成代理对象的方式来进行具体的数据处理,java代码和sql分离,耦合度较低,在使用时可以实现面向接口编程,使用方便。这种使用方式需要注意sql映射文件中的命名空间必须是对应接口的全路径限定名
3)不使用sql映射文件,直接使用注解将sql定义在java类中,需要定义接口,在接口中对应方法上定义对应的sql,这种的原理和第2中相同,只不过比较适用于sql简单的情况,且耦合度较高
以上就是对映射器的理解,期望读过这篇文章的同学留言自己的看法,一起交流一下。
5、mybatis中的映射器相关推荐
- MyBatis学习之映射器Mapper(接口映射器+xml映射文件)
Table of Contents 01 MyBatis映射器: 1.1 接口映射器+xml映射器 1.2 接口映射器+注解 02 接口映射器+xml映射器 方式 2.1 mybatis配置文件 引 ...
- mybatis的mapper.xml文件中含有中文注释时运行出错,mybatis配置优化和别名优化 mybatis配置之映射器说明
记录一个发现的小问题,刚刚在UserMapper.xml文件中有一段中文注释掉的内容: <!-- <resultMap id="Usermap" type=" ...
- 深入浅出MyBatis:「映射器」全了解
本篇文章是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记. 上一篇总结了MyBatis的配置,详细说明了各个配置项,其中提到了映射器,它是MyBatis最强大的工具,也是使用最多的工具. 通 ...
- SSM-SpringMVC-07:SpringMVC中处理器映射器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping BeanN ...
- mybatis collection标签_一对多的关系,在MyBatis中如何映射?
# 使用collection标签 需求:根据用户id查询用户信息的同时获取用户拥有的角色,一个用户可以拥有1个或多个角色. 一般情况下,不建议直接修改数据库表对应的实体类. 所以这里我们延用之前博客中 ...
- 关于QtCharts中的映射器与模型的使用
简述 本文章基于博主在使用QtCharts中一些经验总结,相关了Qt类有QVXYModelMapper,CustomTableModel(一个继承了QAbstractTableModel的类,用于实现 ...
- Mybatis中输入输出映射和动态Sql
一.输入映射 我们通过配置parameterType的值来指定输入参数的类型,这些类型可以是简单数据类型.POJO.HashMap等数据类型 1.简单类型 2.POJO包装类型 ①这是单表查询的时候传 ...
- Mybatis中Mapper映射文件详解(默认值)
Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd.我们先大体上看看支持哪些配置?如下所示,从Eclipse里截了个屏: 从上图可以看出, ...
- MyBatis中SqlSessionFactory和SqlSession简解
mybatis官网中文文档:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html mybatis-spring官方中文文档:https://mybatis. ...
最新文章
- 对于非阻塞socket的可写事件
- Docker容器的启动过程(七)
- git怎么上传文件到别人的仓库_Git将本地代码上传至远程仓库
- Nginx七层负载均衡配置
- Linux系统用户账号的管理技巧
- qt 控件坐标系_Qt中,如何找准控件坐标
- EEGLAB如何进行ERPs数据处理你都会了吗?看这里保证你一劳永逸的get ERPs数据处理技能
- 图像处理2:二维图像的频谱图理解
- 思维导图的三招十八式
- Java后端技术面试汇总(第一套)
- matlab基础知识与简单操作
- 2019年信息安全工程师上午真题及答案解析
- re.findall 用法
- linux内存双通道,两根内存就是双通道?太年轻
- 关于植物大战僵尸如何更改关卡与金币
- 基于 OTA 场景的电控信息安全研究
- List转Map思想的妙用
- PCB制板流程及工艺
- Spring MVC参数处理--gzip和deflate的几点区别
- Oracle CX云位居Forrester领导者象限第一
热门文章
- mysql 操作类 C .net_.NET MYSQL数据库操作基类( C#源码)
- 数据库年月日时分秒_数据库基本使用系列(二)
- react全局状态管理_rxv: 在React中用Vue3的reactivity包实现状态管理。
- mysql 左连接 怎么走索引_数据库索引、左连接、右连接、等值连接
- python小游戏——21点
- mysql脚本的制作_制作脚本实现mysql自动备份
- [Java基础]ListIterator
- alibaba实习生代码大赛
- 数据结构与算法-- 二叉树后续遍历序列校验
- mysql边备份边导入么_MySQL 怎么导入导出操作