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

热门文章

  1. [附源码]Node.js计算机毕业设计菜鸟驿站快递分发系统Express
  2. Office 365系列之二:注册全球版微软Office 365
  3. 国企招聘:省通用航空产业发展有限公司(省属国企)招聘2023届管培生
  4. ios apple企业账号申请流程
  5. C#Mutex类用法总结
  6. 软件测试入门到飞升上仙之客户端
  7. MFC使用Create函数创建对话框失败,new出来的对话框内存泄漏
  8. Excel文件的导出操作
  9. 英语口语-常用短语句1
  10. 【群晖】win7 win10 添加网络映射 指定的网络密码不正确,实际密码是正确的。