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,只是写法更短、文件更少。任何一个场景,都先写出能跑的最小版本,再慢慢拆层、加配置、加日志。

相关推荐
如意猴6 分钟前
【C++】007 C/C++ 内存管理机制、malloc与new的区别及模板初阶
java·c++·算法
可乐鸡翅yeah_16 分钟前
HLS 分片过期清理,直播旧 TS 分片磁盘爆满问题处理
java·后端·spring·m3u8·m3u8在线·音视频在线播放
旋生万物28 分钟前
螺旋角分布的功率谱分析:多窗谱 + FDR 校正
开发语言·python
写后端的胖头鱼43 分钟前
【高频面试题】FullText 全文索引(MySQL)
数据库·mysql·索引·全文索引
专业程序开发源1 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
用户094248568031 小时前
第23章:OpenJDK逃逸分析、标量替换与锁优化
java·jvm
wuminyu1 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析
java·linux·c语言·jvm·c++
路远的数据库笔记1 小时前
SQL Server迁移国产数据库怎么做?九套口岸库零停机割接实战
数据库·经验分享·sqlserver·dba
樱花落木兰1 小时前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
wuyk5551 小时前
Python 网络爬虫入门到实战 第 04 章:请求头、UA 伪装、超时、异常处理、基础反爬绕过
开发语言·爬虫·python