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自动完成,进行了半自动化实现。

 

转载于:https://www.cnblogs.com/pjfmeng/p/7656475.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐