01.MyBatis框架介绍

01.MyBatis框架介绍

1.三层架构

软件开发常用的架构是三层架构,之所以流行是因为有着清晰的任务划分。一般包括以下三层:

  • 持久层:主要完成与数据库相关的操作,即对数据库的增删改查。因为数据库访问的对象一般称为Data Access Object(简称DAO),所以有人把持久层叫做DAO层。
  • 业务层:主要根据功能需求完成业务逻辑的定义和实现。因为它主要是为上层提供服务的,所以有人把业务层叫做Service层或Business层。
  • 表现层:主要完成与最终软件使用用户的交互,需要有交互界面(UI)。因此,有人把表现层称之为web层或View层。
    三层架构之间调用关系为:表现层调用业务层,业务层调用持久层。
    各层之间必然要进行数据交互,我们一般使用java实体对象来传递数据。

image-20220217140843253

2. 原始jdbc操作(查询数据)

image-20220217141110621

2.1 JDBC问题分析

  1. 数据库连接频繁被创建和释放,会造成系统资源的浪费,从而影响系统性能。
  2. sql 语句在代码中硬编码,造成代码不易维护。而实际开发中, sql 变化的可能较大,sql 变动需要改变java代码,所以不宜维护系统。
  3. 查询操作时,需要手动将结果集中的数据手动封装到实体中。

应对上述问题给出的解决方案:

  1. 使用数据库连接池初始化连接资源
  2. 将sql语句抽取到xml配置文件中
  3. 使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

3. MyBatis简介

MyBatis是一个优秀的基于ORM的半自动轻量级持久层框架,它对jdbc的操作数据库的过程进行封装,
使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建
statement、手动设置参数、结果集检索等jdbc繁杂的过程代码

轻量级解释:程序在启动期间需要消耗的资源少。

  • 半自动:MyBatis

  • 全自动:hibernate

    **两者本质区别:**是否需要手动写sql。

比较起来hibernate是不需要编写sql的,由底层来自动生成sql。那为什么MyBatis会比它火呢?

  • 原因在于,如果不能编写sql,我们则不能对其生成的sql进行优化,所以更建议使用MyBatis框架。

4. ORM思想

ORM(Object Relational Mapping)对象关系映射

  • O(对象模型):
    实体对象,即我们在程序中根据数据库表结构建立的一个个实体javaBean
  • R(关系型数据库的数据结构):
    关系数据库领域的Relational(建立的数据库表)
  • M(映射):
    从R(数据库)到O(对象模型)的映射,可通过XML文件映射

实现:

  1. 让实体类和数据库表进行一一对应关系
    先让实体类和数据库表对应
    再让实体类属性和表里面字段对应
  2. 不需要直接操作数据库表,直接操作表对应的实体类对象

image-20220217145323816

  • ORM作为是一种思想帮助我们跟踪实体的变化,并将实体的变化翻译成sql脚本,执行到数据库中去,也就是将实体的变化映射到了表的变化。
  • mybatis采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿红

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值