Java 数据库访问 vs Python 数据库访问:JDBC vs ORM

目录

一、这篇文章怎么用

[二、最基础 JDBC vs Python sqlite3](#二、最基础 JDBC vs Python sqlite3)

[三、ORM 对照(Java JPA vs Python SQLAlchemy)](#三、ORM 对照(Java JPA vs Python SQLAlchemy))

四、事务处理

五、常见坑

结语

补充说明


一、这篇文章怎么用

Java 用 JDBC/ORM,Python 用 DB-API/ORM。本文给出最直白对照。

二、最基础 JDBC vs Python sqlite3

// Java

Connection conn = DriverManager.getConnection(url);

PreparedStatement ps = conn.prepareStatement("select * from user");

ResultSet rs = ps.executeQuery();

// Python

import sqlite3

conn = sqlite3.connect('test.db')

cur = conn.cursor()

cur.execute('select * from user')

rows = cur.fetchall()

三、ORM 对照(Java JPA vs Python SQLAlchemy)

// Java JPA

@Entity

class User { @Id Long id; String name; }

// Python SQLAlchemy

class User(Base):

tablename = 'user'

id = Column(Integer, primary_key=True)

name = Column(String)

四、事务处理

// Java

conn.setAutoCommit(false);

// Python

conn.commit() # 手动提交

五、常见坑

  • 忘记关闭连接
  • SQL 注入风险

结语

Java 的数据库思路和 Python 一样:连接、执行、提交、关闭。

补充说明

这里继续用更直白的说法:如果你会 Java,就把"做法"和"习惯"平移到 Python,只是写法更短、文件更少。任何一个场景,都先写出能跑的最小版本,再慢慢拆层、加配置、加日志。

相关推荐
zhendianluli18 小时前
PyTorch 复杂模型转 ONNX 踩坑纪实:从 diff 到 nan_to_num 的三关突破
人工智能·pytorch·python
betazhou18 小时前
电科金仓数据库V9 MySQL兼容版本搭建一主一从体验
数据库·mysql·oracle·主从·高可用·kingbase·v9 mysql兼容版本
Refrain_zc18 小时前
Android 播放器进度条改造实践:句级音频列表映射秒级时间轴
java
我命由我1234518 小时前
Bugly - Bugly 基本使用( App 质量追踪平台)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
python在学ing18 小时前
Django框架学习笔记:从零基础到项目实战
数据库·python·django·sqlite
宋哥转AI18 小时前
Spring AI Graph:从0到Supervisor(一)RAG子图+Supervisor路由踩坑全记录
java·agent
PAK向日葵18 小时前
从零实现 Python 虚拟机(二):S.A.A.U.S.O 的总体架构设计
c++·python
Mahir0818 小时前
MyBatis 深度解密:从执行流程到底层原理全解
java·后端·面试·mybatis
程序员小远18 小时前
系统性能指标全解析
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
duoduo_sing18 小时前
数据库备份终极方案:从脚本手动到自动化热备+异地同步实战
运维·数据库·自动化·用友