学习MyBatis必知必会(1)~准备工作:了解框架、三层架构、ORM思想

简介: 学习MyBatis必知必会(1)~准备工作:了解框架、三层架构、ORM思想

一、框架:

1、框架,什么是框架,为什么要使用框架?

■ 框架:是一些列jar包,本质是对jdk功能的扩展。

框架是一组程序的集合,包含一系列的最佳实践,作用是为了解决某个领域的问题。


  • 回顾一下java程序的运行机制:java文件(源文件) ---[编译]--》 字节码文件(class文件) ---[运行]--》 jvm
  • jar包:多份java字节码文件(class文件-运行要用到的文件)---[压缩打包]--》jar(java归档文件,类似于rar)
■ 使用框架第一步:拷贝jar包.


二、三层架构:

(图片来源叩丁狼)


53.png


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

---为了解决面向对象与关系数据库存在的互相不匹配的问题。 [主要是:对象的属性名和表的列名不匹配的问题]


1、回顾之前jdbc封装的dao层的模板类jdbcTemplate:

//增删改操作模板: public static update(String sql, Object...params)
//查询操作模板:public static <T> T query(String sql, IResultSetHandler rsh, Object...params)
//---------------------------------------------------------------------------------------------
//还封装了BeanHandler、BeanListHandler
  BeanHandler 处理结果类[结果集只有一行数据,把一行结果集数据封装成一个对象]
  BeanListHandler 处理结果类[结果集有多行数据,把每一行结果集数据封装成一个对象,存储到List集合中]
  • 使用BeanHandler和BeanListHandler要注意,对象的属性名和表中的列名需要相同,不同报错。

■ jdbc--->jdbc模板(通用结果集处理器[需要保证类的属性名和表名相同])----》ORM框架(MyBatis框架)


2、ORM思想:

面向对象概念----(映射配置)-----面向关系概念

类 ----------------------------------------------表

对象----------------------------------------表的行(记录)

属性---------------------------------------表的列(字段)



3、Mapping:使用注解/xml:

❀ 属性名和列名是不同的,将两者对应起来需要使用还能某种规则【注解/xml

  • 使用xml:

(图片来源叩丁狼)


54.png


4、ORM 框架:

遵循ORM思想实现的技术,解决持久层问题[和数据库连接,进行CRUD]。

(图片来源叩丁狼)


55.png


✿ 一个设计良好的持久层,应该保证:当持久层的实现技术发生改变时,不会影响到上一层层的代码(service层)。



■ 常见 ORM 框架:

  • JPA:本身是一种 ORM 规范,不是 ORM 框架。由各大 ORM 框架提供实现。
  • Hibernate:以前最流行的 ORM 框架。设计灵巧,性能优秀,文档丰富。
  • MyBatis: 目前最受欢迎的持久层解决方案。
目录
相关文章
|
1月前
|
Dubbo Java 应用服务中间件
Apache ShenYu 架构学习指南
Apache ShenYu 是一款高性能、插件化的微服务API网关,基于Spring WebFlux + Reactor 构建,支持多协议、动态配置与实时数据同步。本指南以通俗类比和实战路径,带你深入理解其架构设计、核心流程与源码实现,助力快速掌握并参与贡献。
255 12
|
1月前
|
Kubernetes Go API
Kubeflow-Model-Registry-架构学习指南
Kubeflow Model Registry 是一个用于管理机器学习模型元数据的基础设施,采用 Go、Python、React 和 Kubernetes 技术栈,支持模型版本、注册与存储追踪。本指南系统解析其分层架构、核心流程与代码结构,提供从环境搭建到贡献代码的完整学习路径,助力开发者深入掌握模型管理实践。
125 0
|
1月前
|
Kubernetes Go 调度
Kubeflow-Trainer-架构学习指南
本指南系统解析Kubeflow Trainer架构,涵盖核心设计、目录结构与代码逻辑,结合学习路径与实战建议,助你掌握这一Kubernetes原生机器学习训练平台的原理与应用。
399 139
|
1月前
|
Kubernetes API 开发工具
Kubeflow-Pipelines-架构学习指南
本指南带你深入 Kubeflow Pipelines 架构,从零掌握 ML 工作流编排。涵盖核心组件、代码结构、开发调试及贡献流程,结合实战练习与学习路径,助你由使用者进阶为贡献者。
344 139
|
1月前
|
Kubernetes Cloud Native Go
Kubeflow-KServe-架构学习指南
KServe是基于Kubernetes的生产级AI推理平台,支持多框架模型部署与管理。本指南从架构解析、代码结构到实战部署,系统讲解其核心组件如InferenceService、控制器模式及与Knative、Istio集成原理,并提供学习路径与贡献指南,助你快速掌握云原生AI服务技术。
403 139
|
1月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
186 7
|
1月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
177 6