MyBatis(从头到尾)笔记(一)
一、MyBatis概述
1)什么是MyBatis?
MyBatis是支持定制SQL语句、存储过程以及高级映射的半自动化的持久层框架。
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
MyBatis可以使用简单的XML和注解的方法用于原生映射,将接口和java POJO(Plain Old Java Object 普通老式的Java对象)映射成数据库表中的记录
2) MyBatis历史及发展
源是Apache的一个开源项目iBatis,在2010年6月,这个项目被Apache software foundation(Apache软件基金会)迁移至Google Code,随着开发团队转投Google Code旗下,iBatis3.x正式更名为Mybatis,代码于2013年迁移到GitHub
iBatis一词源于“internet”和“abatis”的组合,是一个持久层框架,ibatis提供的持久层框架包括SQL Maps和DAO(Date Access object)
3) 为什么要使用MyBatis?
Mybatis是一个半自动化 的持久层框架
JDBC编程-当我们使用jdbc持久化的时候,sql语句被硬编码到java代码中,这样代码的耦合度太高了,不容易维护,在实际的项目开发中会经常添加sql或者修改sql,这样我们只能到java代码中去修改
Hibernate和JPA
内部自动生产SQL,不容易做特殊优化
基于全映射全自动化框架,javaBean存在大量字段无法只映射部分字段,导致数据库性能下降
对开发人员而言,核心SQL是需要自己优化,将SQL和java编码分开,功能清晰,一个专注业务,一个专注数据
可以使用简单的XML和注解用于配置的原生映射,将接口和java pojo映射成数据库表中的记录,成为业务代码与底层数据库之间的媒介。
4) MyBatis与Hibernate之间的差异化和区别?
(1) Hibernate是一个标准的ORM映射框架,MyBatis不再是一个标准的ORM框架,它工作在持久层。
(2)Hibernate是一个全自动化框架,MyBatis是一个半自动化的框架
(3)Hibernate将对数据库的操作全封闭化,MyBatis将其透明化(SQL自己编写)
(4)Hibernate是一个重量级的框架,Mybatis相对来说更加轻量级,类似于struts2和springMVC
(5)从耦合度来说,MyBatis在java和SQL之间提供更灵活的映射方案,Mybatis将sql语句和方法的实现直接写到xml文件中,实现和java程序解耦,为什么这样说,MyBatis将接口和映射文件进行分离,相互独立,但又通过反射机制将其动态绑定,其实它底层就是Mapper代理工厂[MapperRegistry]和[Mapper标签映射]MapperStatment,它们说穿就是Map容器,就是我们常见的HashMap和ConcurrentHashMap.
MyBatis(从头到尾)笔记(一)相关推荐
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- mybatis学习笔记(7)-输出映射
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...
- mybatis学习笔记(3)-入门程序一
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...
- MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...
- ant的下载与安装——mybatis学习笔记之预备篇(一)
看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...
- SpringBoot集成Mybatis用法笔记
今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...
- mybatis学习笔记--常见的错误
原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...
- mybatis学习笔记(1)-对原生jdbc程序中的问题总结
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...
- MyBatis:学习笔记(4)——动态SQL
MyBatis:学习笔记(4)--动态SQL 转载于:https://www.cnblogs.com/MrSaver/p/7453949.html
最新文章
- 唯品会HDFS性能挑战和优化实践
- C++ 创建文件夹的四种方式
- 实验三+067+冯艳芳
- 基于SSM + Redis的Shiro权限管理项目
- Nginx学习之一:从权威途径(wiki)了解Nginx
- RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
- 数据分析:Hive、Pig和Impala
- HTML5 响应式网页设计之页面美化(一.响应式布局)
- MapXtreme 2005 学习心得 关于地图投影坐标问题的解决方式(十四)
- property_自己编写一个读取Property文件的Util类
- linux中文件带方块,JFreeChart图片里的中文在linux下显示为方块的解决办法
- opencv3 与opencv2不同之处
- 上传文件到sftp服务器
- 我的青春谁做主——经典台词之人生哲理
- SuperMap的数据组织
- 手写SSH2服务器连接池
- 盘点IT职场“最差”程序员,这7个特征尤为典型!
- 深入探讨IGP协议:OSPF与ISIS的区别(区域类型比较,邻接关系比较,DR和DIS比较,如何计算路由以及性能的比较)
- JAVA5 8 9章复习
- 蔚然的风,你一阵吹过
热门文章
- python五大算法_一文洞悉Python必备50种算法!资深大牛至少得掌握25种!
- F:大疆M300PSDKv2.1.0通过树莓派4B向pilot传输图片与视频。(只运行示例程序)
- 炉石传说服务器维护有补偿吗,炉石传说服务器故障怎么办 服务器故障补偿一览...
- 语音信号分析之FFT变换过程
- HTTPS 原理简要总结
- LG-CF6D Lizards and Basements 2
- 3dmax布料动画导入到Unity流程
- 移动端微信聊天界面案例
- Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
- UE5 GAS 学习笔记 1.2游戏标签