为什么要使用ORM框架

Django中ORM框架的使用 orm框架介绍 阅读详情

在java程序里用大量的aql语句代替了orm,在数据库由mysql改为oracle时,这些sql语句会由于语法原因大量报错,怎么办?欢迎讨论! 但是如果我们使用orm框架就只要需要更改一下方言,代码都不用改!!
1.什么是ORM
对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

2.为什么使用ORM?
当我们实现一个应用程序时(不使用O/R Mapping),我们可能会写特别多数据访问层的代码,从数据库保存、删除、读取对象信息,而这些代码都是重复的。而使用ORM则会大大减少重复性代码。对象关系映射(Object Relational Mapping,简称ORM),主要实现程序对象到关系数据库数据的映射。

3.对象-关系映射解释:
A . 简单:ORM以最基本的形式建模数据。比如ORM会将MySQL的一张表映射成一个Java类(模型),表的字段就是这个类的成员变量
B . 精确:ORM使所有的MySQL数据表都按照统一的标准精确地映射成java类,使系统在代码层面保持准确统一
C .易懂:ORM使数据库结构文档化。比如MySQL数据库就被ORM转换为了java程序员可以读懂的java类,java程序员可以只把注意力放在他擅长的java层面(当然能够熟练掌握MySQL更好)
D.易用:ORM包含对持久类对象进行CRUD操作的API,例如create(), update(), save(), load(), find(), find_all(), where()等,也就是讲sql查询全部封装成了编程语言中的函数,通过函数的链式组合生成最终的SQL语句。通过这种封装避免了不规范、冗余、风格不统一的SQL语句,可以避免很多人为Bug,方便编码风格的统一和后期维护。
这里写图片描述
在这里插入图片描述
4. ORM的优缺点:
优点:
1)提高开发效率,降低开发成本
2)使开发更加对象化
3)可移植
4)可以很方便地引入数据缓存之类的附加功能
缺点:
1)自动化进行关系数据库的映射需要消耗系统性能。其实这里的性能消耗还好啦,一般来说都可以忽略之。
2)在处理多表联查、where条件复杂之类的查询时,ORM的语法会变得复杂。

5. 常用框架:
(1)Hibernate 全自动 需要写hql语句
(2)iBATIS 半自动 自己写sql语句,可操作性强,小巧

欢迎大家点点关注和参与讨论,后续还会持续发布Java方面的文章(面试题)

【雷达】基于matlab合成孔径雷达干涉测量(InSAR)时序分析【含Matlab源码 9037期】 合成孔径雷达干涉测量(InSAR)时序分析 完整代码,包运行;可提供运行操作视频!适合小白! 阅读详情

相关推荐

Linux系统监控实战:夜莺监控+categraf采集器配置全流程(附常见问题排查)

本文详细介绍了在Linux系统中使用夜莺监控和categraf采集器进行系统监控的全流程配置,包括环境准备、核心配置文件(如config.toml和procstat.toml)详解、服务集成与验证、高级监控配置实战以及常见问题排查。通过实战案例和优化建议,帮助运维人员快速构建高效的监控体系。

xray4的博客 736

一篇文章带你搞懂为什么要使用 ORM

文章目录一、什么是 ORM?二、为什么要使用 ORM 一、什么是 ORM? ORM(Object-Relational Mapping) 表示对象关系映射。 在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射 简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。 二、为什么要使用 ORM 我们已经学习过:一篇文章带你搞懂 P

南淮北安的博客 2048

详解Σ-Δ型ADC拓扑结构的基本原理

现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。

qq_43416206的博客 1810

(十二):为什么需要一个新的ORM框架

随着互联网的发展,软件规模越来越大,工场手工业式编码方式已经不适应软件发展的需求。本文先从使用环境分析原因,然后再提出解决方案。 1. ORM使用的大环境发生了变化 随着互联网的发展,软件行业在最近的五年,有了新的发展特点。数据往大的发展,有了大数据;服务往小的发展,有了微服务。互联网系统的主要特点:高并发访问,不允许宕机,对运行环境越来越苛刻。NOSQL数据库、微服务及分布式的出现主要就是为了解决这些问题。软件需求越来越复杂了,虽然出现的新技术,也能基本解决苛刻的需求了,但是软件生产率并没有提...

abckingaa的博客 2859

S型速度曲线C程序实现

S型速度曲线C语言程序实现 前言 S型曲线相较于梯形速度曲线具有运行更加平稳的特点,S型曲线共有八种运行情况,感兴趣可以查阅相关文献 代码段 #include <stdio.h> #include <math.h> #define FP64 double int main(void) { /**************************** 定义相关变量(需要映射到PLC寄存器才能进行监控) ***********************/ FP6

LSX312441548的博客 8392

【超详细】C#的单例模式

本文详细介绍了C#中的单例设计模式,包括两种实现方式:普通类泛型单例(Singleton<T>)和基于MonoBehaviour的组件单例(MonoSingleton<T>)。单例模式通过私有构造、静态私有实例和公共访问入口确保全局唯一实例,具有节省资源、保证数据一致性等优势。文章分别阐述了两者的核心原理、代码实现、使用场景及注意事项,并提供了日志管理器和音效管理器的具体应用示例。特别强调了多线程安全、初始化时机和避免过度使用等重要原则,为Unity开发中合理运用单例模式提供了全面指导。

grapefruit_lyy的博客 1533

ORM框架详解:为什么不直接写SQL?

ORM是"Object-Relational Mapping"的缩写,中文通常翻译为"对象关系映射"。这个术语听起来可能有点抽象,让我们通过一个简单的比喻来理解它:想象你是一位翻译官,你的工作是在两种完全不同的语言之间进行翻译。在编程世界中,ORM就像这样一位翻译官,它在面向对象的编程语言(如Java、Python、C#等)和关系型数据库(如MySQL、PostgreSQL、Oracle等)之间进行"翻译"。使用面向对象的方式来操作数据库将数据库表映射到编程语言中的类。

m0_74824496的博客 1355

ArcGIS实验教程——实验二十五:大型商场选址经典案例

本实验基于ArcGIS平台进行商场选址分析,综合考虑道路、居民点、停车场和已有商场四个影响因素。通过缓冲区分析建立各要素的影响范围(道路50米、居民点100米、停车场100米、已有商场500米),采用叠加分析中的相交和擦除运算确定最优选址区域。实验建立了区位评价体系,通过属性赋值(1/-1)和联合运算生成综合评价结果,并实现分级可视化显示。注意事项包括距离参数设置对结果的影响以及正确选择空间分析工具。该流程为商业选址提供了科学的GIS解决方案。

智慧空间实验室 1万+

什么是ORM?为什么用ORM?浅析ORM的使用及利弊

什么是ORM ORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 为什么用ORM 在程序开发中,数据库保存的表,字段与程序中的实体类之间是没有关联的,在实现持久化时就比较不方便。那么,到底如何实现持久化呢?一种简单的方案是采用硬编码方式,为每一种可能的数据库访问操作提供单独的方法。这种方案存在以下不足:

lisheng19870305的专栏 6816

Python爬取小红书种草商品评论数据:从入门到实战全攻略(附反爬+情感分析方案)

Python爬取小红书种草商品评论数据,核心是“抓包找到正确的接口+处理登录验证+合理的反爬策略”。新手不用一开始就追求多笔记批量爬取和情感分析,先把单笔记的评论抓取和存储跑通,再逐步扩展功能。我做的这个系统现在每天帮朋友爬取3-5款美妆产品的评论,自动做情感分析和关键词提取,她再也不用手动翻评论了,效率提升了80%。如果你们在开发中遇到具体问题,比如接口找不到、Cookie过期、IP被封,都可以在评论区留言,我会一一解答。后续也可以出一期小红书笔记种草数据爬取的教程,帮助大家更全面地分析竞品数据。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1350

《Zephyr OS 入门与实战》第5章:内存管理策略

【代码】《Zephyr OS 入门与实战》第5章:内存管理策略。

2301_79143213的博客 349

为什么要使用ORM技术?和 JDBC 有何不一样?

为什么要使用ORM技术?和 JDBC 有何不一样?       1、繁琐的代码问题:       用JDBC的API编程访问数据库,代码量较大,特别是访问字段较多的表的时候,代码显得繁琐、累赘,容易出错,例如:       public void addAccount(final Account account) throws DAOException {          final Con

WWWTYB的专栏 7519

用 SQL Trace 透视 SAP HANA 执行链路:从会话层到内部语句,一次把性能问题抓个现行

摘要:SAP HANA 的 SQL Trace 是性能分析和故障定位的关键工具,它记录会话层所有执行的 SQL 语句。文章解释了 SQL Trace 的工作原理、使用场景和配置方法,包括图形界面和 SQL 命令两种启用方式。重点讨论了存储过程内部语句的捕获问题,指出需要通过设置 internal 参数才能获取过程体中的详细 SQL 语句。文章还提供了实用的排查建议,强调要精准控制 Trace 范围,避免生成过大文件。最后通过真实案例展示了如何利用 SQL Trace 快速定位性能问题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1042

ORM框架使用优缺点

1. 什么是ORM? 对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联

public 3万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

使用Python ORM框架来操作MySQL

Python 还有另一种方式可以与 MySQL 进行交互,这种方式采用的是 ORM 框架。

weiye2012的博客 1439

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

关于ORM框架的认识与使用

ORM,又称O/R Mapping,即数据持久层框架,去年由于在公司项目的原因,项目中使用到Spring.NET+iBatis.NET+MVP框架,但总是感觉iBatis.NET使用起来不怎么好用,大家在使用ORM框架上有没什么技巧,或有更好的ORM框架,对于Linq、NHibernate等ORM框架有什么看法没? 一般在做项目时,什么选哪一种?  大家也可以分享一下在项目中使用的体会...

jiangnan87108的专栏 369

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JDBC与ORM框架的协作使用

JDBC(Java Database Connectivity)是Java平台用于访问数据库的标准接口,而ORM框架则是一种面向对象的关系映射框架,它可以帮助开发者更方便地与数据库进行交互。在数据操作方面,ORM框架提供了丰富的数据映射功能,使得开发者可以更方便地进行数据库操作。此外,ORM框架还支持多种数据操作模式,如分页查询、排序查询等,进一步提高了数据操作的效率和灵活性。同时,ORM框架提供了丰富的数据映射功能,使得开发者可以更方便地进行数据库操作,减少了手动编写SQL语句的繁琐程度。

searchboy2025的博客 61

如何使用ORM框架进行数据库操作?

使用ORM框架进行数据库操作可以显著提高应用程序的开发效率和可维护性。以下是如何使用ORM框架进行数据库操作的一般步骤:

m0_47946173的博客 1383

打造android ORM框架opendroid(一)——ORM框架的使用

一、我的看法 我记得曾经有一篇博客是介绍的litepal的使用,在这篇博客中我提到过:本来以为android本身提供的API已经封装的够好了,根本不需要什么ORM框架了,但是在使用了litepal后,我感觉使用ORM框架还是很有必要的,下面是我对ORM和android API的几点看法: 1、做为API级别, android只能广义封装,而不能特定去封装一个API,所以android 对sqlite

l_blackeagle的博客 283

ORM框架Hibernate框架的使用以及搭建方式

持久层ORM框架Hibernate框架的使用以及搭建方式 前言 hibernate的概念: hibernate是一个ormapping框架(ORM框架,全自动ORM框架) hibernate是一个数据库的操作框架即持久层框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库(SQL语句由Hibernate根据对象自动生成)。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户

zhx__的博客 6084

Jimmer ORM 框架使用教程

Jimmer 是一个革命性的 ORM(对象关系映射)框架,适用于 Java 和 Kotlin 语言。它不仅提供了经典的 ORM 功能,还引入了新的 ORM 部分,支持远程异常处理、快速创建 GraphQL 服务、跨微服务远程实体关联等功能。Jimmer 的目标是提供一个完整的集成解决方案,帮助开发者更高效地进行数据操作和微服务开发。 ## 2、项目快速启动 ### 环境准备 - Java 8...

gitblog_01143的博客 459

python安装orm_Python流行ORM框架sqlalchemy安装与使用教程

本文实例讲述了Python流行ORM框架sqlalchemy安装与使用。分享给大家供大家参考,具体如下:安装http://docs.sqlalchemy.org1、安装#进入虚拟环境#执行./python3 -m pip installimport sqlalchemyprint(sqlalchemy.__version__) # 1.1.15我这里使用的版本是1.1.15创建连接对象http:/...

weixin_39926193的博客 208

python中orm框架sqlalchemy使用

python中orm框架sqlalchemy使用 文章目录python中orm框架sqlalchemy使用一、简介二、准备2.1 官网地址2.2 依赖包安装三、使用3.1 创建映射对象3.2 创建数据库连接3.3 查询3.3.1 常用查询3.3.2 条件查询3.3.3 直接sql语句查询3.4 插入3.4.1 单条插入3.4.2 批量插入3.4.3 使用sql语句插入3.4.4 忽略已存在的插入3...

panda-star的博客 1232

mysql orm java_基于Java ORM框架的使用详解

ORM框架不是一个新话题,它已经流传了很多年。它的优点在于提供了概念性的、易于理解的数据模型,将数据库中的表和内存中的对象建立了很好的映射关系。我们在这里主要关注Java中常用的两个ORM框架:Hibernate和iBatis。下面来介绍这两个框架简单的使用方法,如果将来有时间,我会深入的写一些更有意思的相关文章。HibernateHibernate是一个持久化框架和ORM框架,持久化和ORM是两...

weixin_29785723的博客 236

Android ORM框架 GreenDao 的使用详解

一、前言 关于 Android 中常用的数据存储方式我们前面已经讲了 Sp 存储 和 文件存储,但是对于数据量比较大,并且结构复杂的数据我们想要存储只能通过数据库进行处理,Android 中提供了一个 SQLite 数据库,但是使用起来比较繁琐和复杂,所以 Android 又推出了 Room 持久性库,Room 持久性库在 SQLite 的基础上提供了一个抽象层,让用户能够在充分利用 SQLite 的强大功能的同时,获享更强健的数据库访问机制。但是我们今天不讲 Room 这个组件(以后讲 Jetpack

weixin_38478780的博客 1165

使用反射封装ORM框架,真香!

我们在做开发的过程中,需要经常对数据库进行操作,这时我们就需要使用到ORM框架,例如比较常用的MyBatis和Hibernate。下面我将对ORM框架进行详细的介绍并且封装一个简单的ORM框架。

Mr_wxc的博客 3420
上一篇: 关于《深入理解java虚拟》
下一篇: 怎么更好的去使用Mysql
Formor_
博客等级 码龄7年 7粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值