Mybatis框架简介

一、前言

​ 每个框架都是要解决一些具体的问题的,我们可以从JavaEE的三层架构,来说一下常见的框架有哪些。

(一)Mybatis:

框架职责:作用在dao层,负责数据库访问的框架。

框架介绍:它原本是Apache的一个开源项目ibatis,后来迁移到了Google code,并改名为Mybatis;之后又迁移到了github上。它是一个优秀的Java轻量级dao层框架,对JDBC进行了封装,使开发人员只需要关注SQL语句,而不需要关注JDBC的API执行细节。

(二)SpringMVC:

框架职责:作用在web层,负责和客户端交互的框架。

框架介绍:SpringMVC是Spring Framework的后续产品,受益于Spring框架的流行,并且因为SpringMVC使用简单、和Spring整合简单,导致SpringMVC框架在国内使用的也越来越多。

(三)Spring:

框架职责:不是作用在某一层,而是实现web层、Service层、Dao层之间解耦的框架,是三层之间的粘合剂。
框架介绍:Spring框架是为了解决应用开发的复杂性而创建的,任何Java应用都可以从Spring中受益。Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架。

二、Mybatis简介

(一)dao层常用的技术如下图所示:

 

 (二) JDBC

JDBC是操作数据库的最基本的规范,它的功能简单单一,在使用时需要开发人员处理很多问题:

硬编码问题
大量的重复代码
性能问题
JavaBean和表数据的映射转换问题

(三) ORM思想

​ ORM:Object Relation Mapping,对象关系映射思想。指把Java对象和数据库的表的字段进行关联映射,从而达到操作Java对象,就相当于操作了数据库。查询了数据库,自动封装成JavaBean对象

关系—>对象: 查询表数据,ORM框架自动帮我们把结果封装成JavaBean对象
对象—>关系: 插入数据、修改数据等等,ORM框架自动帮我们把JavaBean对象转换成对应的SQL语句

(四)常见的ORM框架:

Hibernate与Mybatis对比
HibernateMybatis
特点是完全ORM框架,实现了双向映射。简单功能更简单,复杂功能更复杂是半ORM框架,只实现了单向映射
关系—>对象查询不用写SQL,也不用自己封装JavaBean查询不用自己封装JavaBean
对象—>关系DML也不用写DQL没有实现,还需要我们自己编写SQL语句


三、 Mybatis小结

  ​ Mybatis是一个优秀的Java轻量级持久层框架。apache的ibatis,后来托管到google code,后来又迁移到github上。 Mybatis官网:http://www.mybatis.org/mybatis-3/zh/index.html

  它内部封装了JDBC,使开发人员只需要关心SQL语句,而不需要处理繁琐的JDBC步骤。它采用了ORM思想(半ORM),解决了实体和数据库映射的问题。只要提供好sql语句,配置了映射,Mybatis会自动根据参数值动态生成SQL,执行SQL并把结果封装返回给我们。它支持XML和注解两种方式配置映射。

小结
ORM:对象-关系映射思想。表示一个JavaBean对象,要对应表里的一行数据。
关系->对象的映射:从表里查询数据,由框架帮我们自动封装成JavaBean对象
对象->关系的映射:把JavaBean里的数据存储到表里时,由框架帮我们自动把JavaBean的属性值,设置到表里对应的字段上。

Hibernate是一个全ORM框架,实现了双向的自动映射。如果使用Hibernate,简单功能不需要写SQL。复杂功能需要再学习一套HQL语言。Mybatis是一个半ORM框架,只实现了"关系->对象"的自动映射。如果使用Mybatis框架,需要自己编写SQL。
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/yiqieruni/article/details/121747046

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值