1、简介

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2、数据库框架

2.1 Hibernate

Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。

如图所示,Hibernate完成了编译sql,预编译、设置参数、执行sql,封装结果等一系列操作,对程序猿来说相当于黑盒操作。

而这样做的缺点主要由以下几点

1、Hibernate作为一个全自动框架,sql语句有系统自动生成,程序员不能对sql进行优化

2、不适用hql的情况下,不能进行定制化sql语句

3、如果数据库有大量字段,比如说如果只需要查询id,这时候需要全部映射将一百个字段全部查询出来。

2.2 mybatis

有些情况下我们是希望sql语句由程序员进行编写,将java代码和sql语句分开。

如图所示,mybatis将sql代码通过xml文件进行编写,其余的工作还是由mybatis自动完成,进行了半自动化实现。

最新文章

  1. Python高手之路【三】python基础之函数
  2. 小程序用户反馈 - HotApp小程序统计仿微信聊天用户反馈组件,开源
  3. delphi 步长不等于 1 的方法
  4. 2.1 CMMI2级——7个PA简述
  5. 一个purge参数引发的惨案——从线上hbase数据被删事故说起
  6. 18Mybatis_动态sql_foreach
  7. WM (Constants)
  8. 166. Fraction to Recurring Decimal -- 将除法的商表示成字符串(循环节用括号表示)
  9. Html5游戏开发开始前的一些数学基础
  10. warning: shared library text segment is not shareable
  11. 一个可能让你记忆力飙升的软件 —— 这是一道填空(keng)题
  12. TensorFlow框架之Computational Graph详解
  13. python实现博客自动刷点击脚本
  14. Vjudge Code
  15. 抽奖大转盘 js代码
  16. POJ2159 Ancient Cipher
  17. ES7 之 Async/await 的使用
  18. linux应用之gcc环境的安装
  19. ffplay源码分析7-播放控制
  20. 解决国内 NPM 安装依赖速度慢问题

热门文章

  1. 保存 http request 的数据到数据库表
  2. 洛谷 P1276 校门外的树(增强版)
  3. strongSwan大坑一直重启(ubuntu)
  4. kvc to nsdata
  5. caffe修改需要的东西 6:40
  6. 稳定性 耗时 gc 过长问题排查 和工具
  7. shelll脚本,根据软链接,找到真实路径
  8. 升级nodejs 与短小的n模块
  9. Linux基础学习-基本命令
  10. docker:安装mysql