数据库

对比分析:

本质
hibernate是一个完全的ORM框架,mybatis是不完全ORM框架最大的区别就是hibernate封装了sql语句。

扩展性方面。使用mybatis要自己根据相应的数据库写不同的sql实现,例如用mysql数据库写了一个sql的分页语句,如果换成了oracle数据库就用不了了。然而如果是hibernate的hql语句则是对实体类(User)和属性的操作

优化

maybatis的优化,就是对sql语句的优化
hibernate的优化:
制定合理的缓存策略;
尽量使用延迟加载特性;
采用合理的Session管理机制;
使用批量抓取,设定合理的批处理参数(batch_size);
进行合理的O/R映射设计

使用

sql语句比较简单,增删改查为主,hibernate比较好,已经自动生成SQL语句了;复杂语句较多,mybatis比较好一点,比较灵活方便管理。
工作量mybatis稍微大点。hibernate良好的映射,更专注于业务流程
hibernate会查询所有字段,有性能损耗,但是有自己的日志统计, mybatis需要用log4统计。
sql: select 字段名…from table_name where 字段名… sql是直接对数据库表的操作
hql:select 属性名…from 实体类 where 属性 条件 …group by 属性order by属性。hql是对与表有映射关系的实体类的操作,底层会再自动生成相应的sql。

缓存

** Hibernate一级缓存是Session缓存,利用好一级缓存就需要对Session的生命周期进行管理好
Hibernate二级缓存是SessionFactory级的缓存。 SessionFactory的缓存分为内置缓存和外置缓存。内置缓存中存放的是SessionFactory对象的一些集合属性包含的数据(映射元素据及预定SQL语句等),对于应用程序来说,它是只读的。外置缓存中存放的是数据库数据的副本,其作用和一级缓存类似.二级缓存除了以内存作为存储介质外,还可以选用硬盘等外部存储设备。二级缓存称为进程级缓存或SessionFactory级缓存,它可以被所有session共享,它的生命周期伴随着SessionFactory的生命周期存在和消亡。**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值