首页 > Web开发 > 详细

初入Mybatis(一):Mybatis和Hibernate的区别

时间:2019-08-10 17:13:21      阅读:112      评论:0      收藏:0      [点我收藏+]

mybatis解决JDBC问题:

1.使用jdbc每一次调用数据库就会创建,销毁连接,消耗内存,执行效率低

解决方法:SqlMapConfig.xml中配置连接池

2.sql语句写入在java项目代码中,修改sql导致java代码改动,不利于维护

解决方法:将sql语句写在mapper.xml中,是sql和java代码分离

3.使用?占位符时,参数过多过少,需要一一对应参数。不利于维护

解决方法:通过Mybatis自动映射java对象至sql语句,通过statement的parameterType进行传参

4.查询时存在硬编码,当sql语句改变解析的sql语句也发生变化,系统不利于维护。
解决方法:通过Mybatis自动映射sql语句至java对象,通过statement的parameterType返回数据

Mybats和Hibernate的区别:

Mybatis:

  • 编写SqlMapConfig.xml文件:编辑连接数据库的信息
  • 加载配置文件,获取SqlSessionFactory对象
  • 获取SqlSession对象:调用Mapper.xml的sql语句
    (insert,update,delete,selectOne,selectLists)
  • 释放资源
优点:

1.Mybatis是一个半自动的ORM持久层框架,需要手动编写sql语句和ResultMap,灵活性强,适合移动互联网高并发,大数据,高性能,高响应的要求。

2.使用起来相对于比较简单。

缺点:

1.因为使用的是SQL进行数据库的操作,所以与数据库的无关性差,操作不同的数据库需要编写不同的sql语句,拓展性差。

2.没有日子系统,需要借助log4j来记录日志。

3.Mybatis的接口需要接口和Sql

4.使用二级缓存操作不当时,出现脏读程序仍会正常运性,存在安全隐患。

2.Hibernate:

编程步骤:
  • 加载Hibernate.cfg.xml文件:获取连接数据库的信息
  • 获取SessionFactory对象(内含Session和二级缓存)
  • 获取Session(Connection和一级缓存):操作数据库的CRUD
  • 释放资源
优点:

1.Hibernat是一个全自动的ORM框架,无需关心sql,更加专注于流程。无需编写sql语句,开发效率高,与数据库的无关系好,能操作不同的数据库,适用于高关系模型要求高的软件(例如需求固定的定制化软件)。

2.拥有自己的日志统计

3.Hibernate无需噢诶之接口和sql

4.Hibernate对查询对象有着良好的管理机制,二级缓存出现脏读会记性报错

缺点:

1.使用难度高,开发时需要考虑模块,性能,对象关系映射之间的权衡

2.当Sql出现三个关联时,会造成太多性能的丢失。

初入Mybatis(一):Mybatis和Hibernate的区别

原文:https://www.cnblogs.com/yizhichenfen/p/11331414.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!