您现在的位置:首页 > 课程体系 > 软件研发与管理 > HTML5、JAVA
基于JAVA的持久层框架MyBatis简介

Mybatis简介

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。

1、Mybatis是一个半ORM(对象关系映射)框架,底层封装了JDBC,是程序员在开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。使得程序员可以花更多的精力放到业务开发中。另外,程序员直接编写原生态sql,严格控制sql执行性能,灵活度高。

2、MyBatis可以使用简单的XML文件或注解方式来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

3、通过xml文件或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

 

Mybaits的优点

1、SQL语句和代码分离

便于统一管理和维护,不必再Java代码中调式SQL语句。但是当SQL语句出错时,控制台不会打印Log,解决办法--引用log4j

2、用标签拼接SQL语句

用标签代替JAVA代码虽然写简单SQL语句时方便了许多,但是复杂的语句拼接难度大。

3、结果集和JAVA对象自动映射

写过hibernate的都知道,hibernate连接数据库生成SQL语句的时候,会自动生成数据库实体类和其映射文件,在mybaits中,它帮我们做了这件事情。但是对数据库的字段要求较高,实体类和配置文件需要手写。

4、即时加载

在一个页面同时显示大量数据时,hibernate的延时加载会创建大量的代理类,消耗资源.mybaits并不通过延时访问数据库。

MyBatis框架的缺点

1、SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。

2、SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

MyBatis框架适用场合

1、MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。

2、对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

MyBatis与Hibernate的比较

1、两者最大的区别:

针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。

针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。

2、开发难度对比

Hibernate的开发难度要大于Mybatis。主要由于Hibernate比较复杂、庞大,学习周期较长。

Mybatis则相对简单一些,并且Mybatis主要依赖于sql的书写,让开发者感觉更熟悉。

3、sql书写比较

Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。不过没有自己的日志统计,所以要借助log4j来记录日志。

Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。不过Hibernate具有自己的日志统计。

4、数据库扩展性比较

Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。

Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。

5、缓存机制比较

相同点:Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓存方案,创建适配器来完全覆盖缓存行为。

中培IT学院企业级JAVA高级开发技术实战培训班,将于9月23日在三亚开班,资深专家详细讲解MyBatis架构原理及使用,课程结束由中国信息化培训中心颁发《JAVA高级开发工程师》证书,证书可作为专业技术人员职业能力考核的证明,以及专业技术人员岗位聘用、任职、定级和晋升职务的重要依据。如有对JAVA开发感兴趣的小伙伴快快私信我们吧!

 

[1]

 
网络安全热度最高的6本证书...
系统分析师VS系统架构设计...
项目经理考NPDP还是软考高...
盘点五个IT领域下证快的证...
CBA与TOGAF:探寻企业架构...
【收藏】软考电子证书下载...
项目经理任选两本证书,年...
DAMA中国推出“一考两证”...
数据分析具体指的是什么,...
数据分析师需要具备什么数...
CDA认证带你了解数据分析的...
敏捷与DevOps协同工作的注...
DevOps自动化测试的注意事...
DevOps五个好用的工具列表...
IT项目管理实现落地有哪些...
IT项目需求分析重点是建立...


中培IT学院 Copyright@2006-2024  北京中培伟业管理咨询有限公司.ALL Rights Reseved 备案号:京ICP备13024721号-2