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简单的情况,且耦合度较高

以上就是对映射器的理解,期望读过这篇文章的同学留言自己的看法,一起交流一下。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces 884E Binary Matrix 并查集,滚动数组

E. Binary Matrixtime limit per test3 secondsmemory limit per test16 megabytesinputstandard inputoutputstandard outputYou are given a matrix of size n  m. Each element of the matrix is either 1 or 0. You have to determine the number of connected component…

使用ILSpy探索C#7.0新增功能点

第一部分:C#是一种通用的,类型安全的,面向对象的编程语言。有如下特点:(1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装、继承和多态性。C#面向对象的行为包括&#xff…

【动态规划】叠放箱子问题(ssl 1640)

叠放箱子问题叠放箱子问题叠放箱子问题 Description 某港口有一批集装箱,将其编号,分别为1至N。每一个箱子的外型尺寸都是一样的,现在要将其中某些集装箱叠放起来,集装箱叠放的规则如下: 1)每个集装箱上最多只能直接…

6、mybatis中的sql映射文件详解(1)

对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用my…

jzoj4050-寻宝游戏【二分,树状数组,LCA】

正题 题目链接:https://jzoj.net/senior/#contest/show/3017/1 题目大意 nnn个点的一棵树,mmm次操作,修改一个地方的宝藏。 每次操作后求拿完所以宝藏并回到原地的最小距离。 解题思路 显然起点在任何一个有宝藏的地方都是最优的,而且顺着…

Ubuntu 16.04+.Net Core+Docker+Nginx安装部署

前言最近公司的项目打算移植到.Net Core平台,所以调研了一下.Net Core在Linux下的安装部署。本篇文章会一步步的描述从安装到配置到部署的全部过程。在文章的结构和内容里,笔者借鉴了很多其他博文的内容,但感觉其他博文中都只是实现了一部分或…

【动态规划】加法最大 (ssl 1595)/乘积最大 (ssl 1007)

加法最大加法最大加法最大 Description 设有一个长度为n的数字字符串,分成k1个部份,使其k1部份相加的和为最大。例如:数字串’340670’,k1,其加法有 34067040673 340670704 3406701010 3406703476 34076034076 其最…

7、mybatis中的sql映射文件详解(2)

对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用my…

jzoj4051-序列统计【NTT】

正题 题目链接:https://jzoj.net/senior/#contest/show/3017/2 题目大意 求有多少个长度为nnn的序列使得 都是在集合SSS中的数这些数的乘积%mx\% mx%mx 解题思路 设fi,jf_{i,j}fi,j​表示长度为iii的序列,乘积为jjj的有多少个,显然有 fi,j∗w%mfi−1…

玩Docker只要浏览器就够了,PWD是个神奇的网站

本文是d4d系列的第9篇,在这一篇中给大家介绍一个学习Docker最为快捷高效的方式,你不需要自己搭建环境,也不用担心把自己的开发环境搞乱,你需要的只是一个浏览器,就可以立即开始学习Docker的常用命令;你甚至…

【树形DP】没有上司的晚会 (ssl 1607)

没有上司的晚会没有上司的晚会没有上司的晚会 Description Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会&#xff0c…

8、mybatis中的sql映射文件详解(3)

对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用my…

P3159-[CQOI2012]交换棋子【费用流】

正题 题目链接:https://www.luogu.com.cn/problem/P3159 题目大意 n∗mn*mn∗m的棋盘,每个格子有黑子或白子,每次可以交换两个位置的棋,给出起始态和最终态和每个格子参与交换的最多次数。 求最少交换次数。 解题思路 这里只把白色棋子算作…

[系统安全]使用OD编写连连看外挂

文档下载地址:https://pan.baidu.com/s/1hrzzerq

2018 .NET开发者调查报告: .NET Core 是怎么样的状态

4月28日,在公众号里发起《.NET Core 使用调查》,该调查为期一周,有近3300名开发者参与,统计下结果供你的决策参考。已经使用.net core 的人数只有44%,计划使用.net core 比例达到48%, 没有计划去使用.net …

【动态规划】【递归】取数字问题 (ssl 1644)

取数字问题取数字问题取数字问题 Description 给定M*N的矩阵,其中的每个元素都是-10到10之间的整数。你的任务是从左上角(1,1)走到右下角(M,N),每一步只能向右或向下,并…

9、mybatis中动态sql的使用

对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用my…

软件质量保证划重点期末复习总结

软件质量保证复习总结大纲及问题 Module1 《软件工程实践》 1、软件工程实践通过解决问题的根源来指导软件开发。 2、软件工程实践之间相辅相成。 3、过程指导一个团队在什么时候做什么以及如何做。 4、软件工程过程为实现软件工程实践提供了上下文和支持。 Module2 《软件…

P4721-[模板]分治FFT【NTT,分治】

正题 题目链接:https://www.luogu.com.cn/problem/P4721 题目大意 给出序列ggg,然后f01f_01f0​1 fi∑j1ifi−jgjf_{i}\sum_{j1}^if_{i-j}g_jfi​j1∑i​fi−j​gj​ 求序列fff 解题思路 使用分治后用NTTNTTNTT计算前区间对后区间的贡献即可。 时间复杂度O(nlo…

Microsoft Build 2018 直播来啦!

一年一度的Microsoft Build大会又来啦!Microsoft Build是微软面向全球开发者、合作伙伴以及消费者介绍其重要产品在未来一年内发展方向的技术盛会。而今年的Microsoft Build 2018大会是微软巨大蜕变、最彻底组织变革后的第一次前沿技术大会。更多了解,请…