MyBatis框架

5 篇文章 0 订阅
4 篇文章 0 订阅

1.MyBatis简介
MyBatis是一款优秀的持久层框架, 它支持定制化sQL.存储过程以及高级映射。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java 的POJO (PainOld Java Objectr普通Java对象)映射成数据库中的记录。
MyBatis与Hibemate同属于ORM ObjectRelational Mapping,对象关系映射)框架,两者在基本功能上相似,但也存在着一些显著的不同,主要体现在:
①MyBatis是一个半自动映射框架,它需要用户手工匹配提供POJO、SQL和映射关系,并熟练地掌握SQL语言的编写,而不像Hibermate那种全表映射能自动地生成对应的SQL语句。
②MyBatis可以通过配置动态SQL并优化SQL语句来优化数据库操作性能,它还支持存储过程,而Hibernate无法做到这些。
③MyBatis以第三方包的形式提供,不像Hibernate本身是集成在Java EE开发的MyEclipse环境中的,故只能以jar包的形式引入项目来使用。
综上所述,虽然MyBatis在使用上不如Hibernate方便,但比之Hibernate来说它在编程上具有高度的灵活性、可优化性和易维护性,故对于那些复杂的和需要性能优化的项目来说,MyBatis 更具优势。目前,Hibernate主要用于一一般的Java EE企业应用,而MyBatis则受到了广大互联网企业的青睐,是大型互联网项目的首选。学习Java EE,应当同时掌握好这两种主流的持久层框架。

2.MyBatis原理及工作流程
在这里插入图片描述
从上图可以看出,MyBatis 在操作数据库时,大致经历了8个阶段,说明如下。
①MyBatis 框架读取系统的核心配置文件mybatis config.xml。mybatis-config.xml 中配置了MyBatis运行环境相关的信息,比如数据源连接的各项参数、映射文件的位置等。
②加载映射文件*Mapper.xml。框架根据核心配置文件中的信息找到映射文件,核心配置文件中可以注册多个映射文件的位置信息,每个映射文件对应数据库中的一张表,其申有操作表的SQL语句。
③构建会话工厂。会话工厂SqlSessionFactory 是MyBatis框架的核心对象,MyBatis 通过核心配置文件中的环境信息来构建该对象。
④创建会话对象。SqlSession 是MyBatis的核心会话对象,它由会话工厂创建,其中包含了执行SQL的所有方法。
⑤调用执行器。在MyBatis框架的底层定义了一个 Executor接口来操作数据库,它相当于一个SQL命令执行器,会根据SqlSession传递过来的参数动态地生成需要执行的SQL语句。
⑥传递映射参数。在Executor接口的方法中,包含个MappedStatement类型的参数,该参数是映射信息的封装,用于存储要映射的SQL语句的id、参数等。
⑦输入参数映射。在执行方法时,MappedStatement 对象会对将要执行的SQL语句的输入参数进行定义,Executor 执行器会在执行SQL前,将输入的Java对象映射到SQL语句中。这个过程有点类似于JDBC编程中对PreparedStatement对象预设参数的过程。
⑧输出结果映射。在执行完SQL语句后,MappedStatement 又会对SQL执行输出的结果进行定义,Executor 执行器则将输出结果映射至Java对象中。同样地,该过程也类似于JDBC编程中对结果的解析处理过程。

3.与Hibernate配置文件的对比
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值