Java中的ORM框架——myBatis

ops/2024/10/21 19:40:11/

一、什么是ORM

ORM 的全称是 Object Relational Mapping。Object代表应用程序中的对象,Relational表示的是关系型数据库,Mapping即是映射。结合起来就是在程序中的对象和关系型数据库之间建立映射关系,这样就可以用面向对象的方式,方便快捷地操作数据。

ORM 框架是一种数据持久化技术,即在对象模型和关系型数据库之间建立起对应关系,并且提供一种机制,可通过 JavaBean 对象操作数据库表中的数据。

ORM 可以在对象模型和关系型数据库的表之间建立一座桥梁,程序员使用 API 直接操作 JavaBean 对象就可以实现数据的存储、查询、更改和删除等操作。

MyBatis 框架通过简单的 XML 或注解进行配置和原始映射,将实体类和 SQL 语句之间建立起映射关系,是一种半自动化的 ORM 实现。

二、ORM VS SQL

三、当前ORM主要框架

(1)Hibernate 全自动 需要写hql语句
(2)iBATIS 半自动 自己写sql语句,可操作性强,小巧
(3)mybatis
(4)eclipseLink
(5)JFinal

四、ORM的优缺点

优点:
1)提高开发效率,降低开发成本
2)使开发更加对象化
3)可移植
4)可以很方便地引入数据缓存之类的附加功能
缺点:
1)自动化进行关系数据库的映射需要消耗系统性能。其实这里的性能消耗还好啦,一般来说都可以忽略之。
2)在处理多表联查、where条件复杂之类的查询时,ORM的语法会变得复杂。

参考以下博文:

https://juejin.cn/post/7171448991329026055

Java-常用ORM框架介绍 | 智能后端和架构

cnblogs.com/xiaotian0422/p/16496908.html


http://www.ppmy.cn/ops/45237.html

相关文章

卷积神经网络-奥特曼识别

数据集 四种奥特曼图片_数据集-飞桨AI Studio星河社区 (baidu.com) 中间的隐藏层 已经使用参数的空间 Conv2D卷积层 ReLU激活层 MaxPool2D最大池化层 AdaptiveAvgPool2D自适应的平均池化 Linear全链接层 Dropout放置过拟合,随机丢弃神经元 -----------------…

window自动启动bat文件

开机自动开启远程桌面, WinR 执行netplwiz 命令进入设置;取消勾选,可选择所需用户,点击应用,输入远程的密码即可 开机自动开启远程桌面, WinR 执行netplwiz 命令进入设置;取消勾选&#xff0…

Guns框架:基于主流技术Spring Boot2 + Vue3 + Antd Vue的现代Java应用开发新纪元

Guns框架:基于主流技术Spring Boot2 Vue3 Antd Vue的现代Java应用开发新纪元 摘要:随着信息技术的飞速发展,软件开发框架在提升开发效率、降低成本方面扮演着至关重要的角色。Guns框架,作为一个现代化的Java应用开发框架&#x…

ESXI8.0虚拟机和主机之间进行粘贴复制

1:默认情况下新建一个虚拟机是无法和主机之间进行粘贴复制操作的,主要是为了安全。 2:可以参考下面的文档进行操作,操作成功也只能复制粘贴数据,而无法复制粘贴文件或文件夹 https://knowledge.broadcom.com/externa…

dataguard 备库关闭后启动流程

startup mount; ---开启adg alter database recover managed standby database using current logfile disconnect from session; -- alter database recover managed standby database cancel; alter database recover managed standby database disconnect…

cf练习5.29

A ac代码 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;int main() {IOSint t;cin>>t;while(t--){int ans0;int a,b;cin>>a>>b;if(b0){if(a%150) ansa/15;else ansa/151;}else if(b!0…

uniapp中使用mockjs模拟接口测试总结(swiper轮播图示例)

完整总结下在uni-app中如何使用Mock.js模拟接口测试&#xff0c;这在后台接口未就绪的情况下非常有用。同时也给出个首页swiper轮播图的mock接口使用。网上的文章都不太完整&#xff0c;这里总结下完整的使用示例&#xff0c;同时也支持h5和小程序平台&#xff0c;分享给需要的…

docker-file 网络

docker挂载 1.绑定挂载&#xff08;Bind Mounts&#xff09;&#xff1a;绑定挂载是将主机上的文件或目录挂载到容器中。 docker run -v /host/path:/container/path image_name 2.卷挂载&#xff08;Volume Mounts&#xff09;&#xff1a;卷挂载将 Docker 数据卷挂载到容器中…