一、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(从头到尾)笔记(一)相关推荐

  1. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  2. mybatis学习笔记(7)-输出映射

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...

  3. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  4. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

  5. ant的下载与安装——mybatis学习笔记之预备篇(一)

    看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...

  6. SpringBoot集成Mybatis用法笔记

    今天给大家整理SpringBoot集成Mybatis用法笔记.希望对大家能有所帮助! 搭建一个SpringBoot基础项目. 具体可以参考SpringBoot:搭建第一个Web程序 引入相关依赖 &l ...

  7. mybatis学习笔记--常见的错误

    原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...

  8. mybatis学习笔记(1)-对原生jdbc程序中的问题总结

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...

  9. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)--动态SQL 转载于:https://www.cnblogs.com/MrSaver/p/7453949.html

最新文章

  1. 唯品会HDFS性能挑战和优化实践
  2. C++ 创建文件夹的四种方式
  3. 实验三+067+冯艳芳
  4. 基于SSM + Redis的Shiro权限管理项目
  5. Nginx学习之一:从权威途径(wiki)了解Nginx
  6. RabbitMQ消息队列之一:RabbitMQ的环境安装及配置
  7. 数据分析:Hive、Pig和Impala
  8. HTML5 响应式网页设计之页面美化(一.响应式布局)
  9. MapXtreme 2005 学习心得 关于地图投影坐标问题的解决方式(十四)
  10. property_自己编写一个读取Property文件的Util类
  11. linux中文件带方块,JFreeChart图片里的中文在linux下显示为方块的解决办法
  12. opencv3 与opencv2不同之处
  13. 上传文件到sftp服务器
  14. 我的青春谁做主——经典台词之人生哲理
  15. SuperMap的数据组织
  16. 手写SSH2服务器连接池
  17. 盘点IT职场“最差”程序员,这7个特征尤为典型!
  18. 深入探讨IGP协议:OSPF与ISIS的区别(区域类型比较,邻接关系比较,DR和DIS比较,如何计算路由以及性能的比较)
  19. JAVA5 8 9章复习
  20. 蔚然的风,你一阵吹过

热门文章

  1. python五大算法_一文洞悉Python必备50种算法!资深大牛至少得掌握25种!
  2. F:大疆M300PSDKv2.1.0通过树莓派4B向pilot传输图片与视频。(只运行示例程序)
  3. 炉石传说服务器维护有补偿吗,炉石传说服务器故障怎么办 服务器故障补偿一览...
  4. 语音信号分析之FFT变换过程
  5. HTTPS 原理简要总结
  6. LG-CF6D Lizards and Basements 2
  7. 3dmax布料动画导入到Unity流程
  8. 移动端微信聊天界面案例
  9. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
  10. UE5 GAS 学习笔记 1.2游戏标签