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

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的resultType返回数据

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出现三个关联时,会造成太多性能的丢失。

转载于:https://www.cnblogs.com/yizhichenfen/p/11331414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值