mybatis和hibernate的区别有哪些?mybatis工作原理是什么?

mybatis和hibernate都是非常好用的框架,在企业开发进行技术选型,都会考虑mybatis与hibernate适用场景。那mybatis和hibernate的区别有哪些?下面来我们就来给大家讲解一下。

mybatis:入门简单,程序容易上手开发,节省开发成本 。mybatis需要程序员自己编写sql语句,是一个不完全 的ORM框架,对sql修改和优化非常容易实现 。

mybatis适合开发需求变更频繁的系统,比如:互联网项目。

hibernate:入门门槛高,如果用hibernate写出高性能的程序不容易实现。hibernate不用写sql语句,是一个 ORM框架。

hibernate适合需求固定,对象数据模型稳定,中小型项目,比如:企业OA系统

mybatis工作原理是什么?

mybatis工作原理流程图:

mybatis和hibernate的区别有哪些?mybatis工作原理是什么?.jpg

1、加载mybatis全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration,和一个个MappedStatement(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着<select | update | delete | insert>标签项。

2、SqlSessionFactoryBuilder通过Configuration对象生成SqlSessionFactory,用来开启SqlSession。

3、SqlSession对象完成和数据库的交互:

(1)用户程序调用mybatis接口层api(即Mapper接口中的方法)

(2)SqlSession通过调用api的Statement ID找到对应的MappedStatement对象

(3)通过Executor(负责动态SQL的生成和查询缓存的维护)将MappedStatement对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象,使用Paramterhandler填充参数,使用statementHandler绑定参数。

(4)JDBC执行sql。

(5)借助MappedStatement中的结果映射关系,使用ResultSetHandler将返回结果转化成HashMap、JavaBean等存储结构并返回。

(6)关闭sqlsession会话。

MyBatis是一个优秀的持久层框架,对jdbc的数据库执行过程,不需要花费更多的精力去处理,着实简化了开发人员开发步骤!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

json格式如何书写?json基础结构是怎样的?

java线程怎么启动?java线程启动的方式

java内存泄漏是什么意思?遇到java内存泄漏怎么办?