ORM技术 - SQLAIchemy 库详解 📅 发布时间:2026/7/12 22:27:02 👁️ 浏览次数: ORM 是Object-Relational Mapping对象关系映射的缩写。简单来说它是一种编程技术用于在面向对象编程语言如 Python、Java、C#中的对象与关系型数据库如 MySQL、PostgreSQL、SQLite中的表之间建立自动映射关系。1. 核心概念它解决了什么问题在没有 ORM 之前程序员需要手动编写 SQL 语句来操作数据库并将查询结果手动转换为代码中的对象。这导致了“阻抗失配”Impedance Mismatch问题代码世界使用类Class、对象Object、属性Attribute、列表List。数据库世界使用表Table、行Row、列Column、结果集Result Set。ORM 的作用就是充当“翻译官”你操作Python 对象ORM 自动帮你生成并执行对应的SQL 语句。数据库返回结果集ORM 自动帮你将其转换为Python 对象。2. 直观对比有 ORM vs 无 ORM假设我们要从数据库中查找一个用户名为 Alice 的用户。❌ 不使用 ORM (原生 SQL)你需要手动处理连接、SQL 字符串拼接、执行、获取结果、类型转换。import sqlite3 # 1. 连接数据库 conn sqlite3.connect(example.db) cursor conn.cursor() # 创建游标 # 2. 编写 SQL 字符串 (容易出错且不同数据库语法可能不同) sql SELECT id, username, email FROM users WHERE username ? cursor.execute(sql, (Alice,)) # 3. 获取结果 (得到的是元组不是对象) row cursor.fetchone() if row: # 4. 手动转换为对象 (繁琐) user_id row[0] username row[1] email row[2] print(f找到用户: {username}, 邮箱: {email}) conn.close()使用 ORM以SQLAIchemy 为列你只需要操作python类和对象。# 1. 定义模型 (映射关系已配置好) # class User(Base): ... # 2. 直接像操作普通对象一样查询 # SQLAlchemy 自动将其翻译为: SELECT * FROM users WHERE username Alice user db.query(User).filter_by(usernameAlice).first() if user: # 3. 直接访问属性无需关心底层是元组还是字典 print(f找到用户: {user.username}, 邮箱: {user.email}) # 4. 修改属性并保存 user.email new_emailexample.com db.commit() # 自动翻译为 UPDATE users SET email ...后续我会分享我在使用SLQALchemy 过程中遇到的各种问题及解决方法加深我对ORM技术的理解。
Java ConcurrentHashMap 详解 1. ConcurrentHashMap 是什么? ConcurrentHashMap 是 Java 并发包 (java.util.concurrent) 中提供的一个线程安全的哈希表实现。 它的主要设计目标是:在保证线程安全的前提下,提供比 Hashtable 更高的并发性能,同时尽量保持与 Has… 2026/7/13 4:40:07
大数据基于Python的大模型岗位人才需求可视化分析 目录大数据与大模型岗位人才需求可视化分析实现计划数据采集与清洗数据存储与管理特征分析与建模可视化实现技术栈选型交付物时间规划开发技术路线源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!大数据与大模型岗位人才需求可视化分析实现… 2026/7/13 4:40:18
中间件实用笔记 Redis Redis集群部署 部署架构 服务器节点:192.168.198.132, 192.168.198.133, 192.168.198.134集群架构:三主(Master)三从(Slave)端口规划: 每台服务器部署两个 Redis 实… 2026/7/10 10:39:52
基于ADS127L11和PIC18F26K22的高精度数据采集系统设计 1. 项目概述:高精度模拟信号数字化方案在工业测量、医疗设备和科学仪器等领域,我们经常需要将微弱的模拟信号转换为高精度的数字信号。这次要分享的是基于TI的ADS127L11 Δ-Σ ADC和Microchip的PIC18F26K22 MCU搭建的高精度数据采集系统。这个组合特别适… 2026/7/13 4:37:21
零基础实战!Prompt工程→Context上下文工程→Harness驾驭工程→Loop循环工程:从普通提问→精准输出→可控合规→自动纠错(小白直接套用) 零基础实战!Prompt工程→Context上下文工程→Harness驾驭工程→Loop循环工程:从普通提问→精准输出→可控合规→自动纠错(小白直接套用) 前言 上一篇文章我完整讲清了提示词四代演化逻辑:Prompt工程→Context上下文工程… 2026/7/13 4:35:20
STM32与蓝牙音频模块开发实战:低延迟与高音质方案 1. 项目背景与硬件选型解析在嵌入式音频开发领域,蓝牙无线传输一直面临着延迟、音质损耗和功耗三大挑战。IDC777-1蓝牙音频模块与STM32L496AG微控制器的组合,恰好针对这些痛点提供了完整的解决方案。这套方案最吸引我的地方在于它同时支持传统蓝牙音频&a… 2026/7/13 4:35:20
从0入门!提示词技术完整演化路线:提示词→上下文→驾驭→循环工程,纯概念小白教程 从0入门!提示词技术完整演化路线:提示词→上下文→驾驭→循环工程,纯概念小白教程 前言 很多新手只会随便丢一句话提问AI,输出效果时好时坏,不知道提示词早已迭代四代,单纯修改文字早已不够用。今天从零拆… 2026/7/13 4:35:20
MCP3428与PIC18F86K22高精度数据采集系统设计 1. 为什么选择MCP3428与PIC18F86K22组合在工业现场和实验室环境中,数据采集系统的精度和稳定性往往直接决定最终数据的可靠性。MCP3428作为一款18位Δ-Σ ADC(模数转换器),其核心优势在于集成了可编程增益放大器(PGA)和内部基准电… 2026/7/13 4:33:19
AI音乐生成提示词设计指南:从零创作专业级歌曲 你是否曾经听过一首爆款歌曲,心里想着"这旋律真不错,我也能写出来",但一想到需要学习乐理、编曲软件、乐器演奏,就望而却步?现在,AI音乐生成工具Suno正在彻底改变这一局面。Suno不是简单的音乐拼… 2026/7/13 4:33:19
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55