关于mybatis与hibernate的区别,以及mybatis的工作执行流程

Mybatis框架与hibernate框架的区别
Mybatis框架是一个半自动映射框架,hibernate框架是一个全表映射的框架
Mybatis支持存储过程,hibernate不支持存储过程
Mybatis需要手写sql语句,还支持动态sql,可自行优化sql,hibernate会自动生成sql
所以效率会比较高,但是在多表查询时,需要发送所有字段,sql性能不佳

Mybatis框架的工作执行流程
Mybatis 首先读取全局配置文件 ,获得一个输入流
创建mybatis的sql会话工厂
通过会话工厂对象创建sql会话对象
然后通过调用合适的方法,把参数传入映射文件中,在映射文件参数里,如果参数类型是基本类型,#{}这种通配符里面可以写任意的内容,${}这种通配符里面只写${value},如果参数类型是pojo,#{}里面则只能写pojo里面的属性名。${}里面则也只能写pojo里面的属性名。(如果pojo里面还有pojo类型,那就要用OGNL表达式进行表示)
通过sql会话执行相应的方法获得结果
然后进行事务提交,或者事务回滚。
最后关闭sql会话对象。

猜你喜欢

转载自blog.csdn.net/z_ssyy/article/details/81628324