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
最新文章
- 商品列表选择尺寸和颜色高亮,并且把选择的数据传递到下一个页面
- 1.12 Java数组使用binarySearch()方法查找指定元素
- [Spring5]IOC容器_Bean管理XML方式_注入其他类型属性
- 【 jquery 】常用
- Java字符串性能优化
- 神似华为Mate20!金立手机也开始复刻了...
- 复旦邱锡鹏组最新综述:A Survey of Transformers!
- fiddler抓包手机app数据(手机连接WiFi)
- tomcat7官网下载
- Glide的图像centerCrop处理-长短边适配
- 【Matlab取整函数】
- 锐起无盘服务器需要什么配置,锐起无盘pnp硬件配置的实现
- 对C#Chart控件使用整理
- 柳州计算机一级考试报名时间,2021计算机考试报名时间和考试时间
- Java提取域名或URL中的一级域名二级域名......
- 神兽来了服务器维护,2016年3月31日服务器维护公告
- 简易火锅店点餐结算小程序
- 基于JavaSSM和微信小程序的智能二维码门禁管理系统
- [编程] 2 python 实现埃拉托色尼筛选法
- 麒麟服务器系统搭建nfs共享