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

相关推荐
m0_74785452几秒前
企业级SQL注入防护手段_使用专用的数据库安全网关
jvm·数据库·python
weixin_424999362 分钟前
Golang reflect反射怎么用_Golang反射教程【通俗】
jvm·数据库·python
消失的旧时光-19433 分钟前
Spring Boot 核心机制之 @Conditional:从原理到实战(一次讲透)
java·spring boot·后端
2301_815279524 分钟前
mysql如何配置慢查询日志记录_开启long_query_time并分析
jvm·数据库·python
InfinteJustice4 分钟前
如何在 CGO 中正确处理带 const char- 参数的 C 回调函数
jvm·数据库·python
m0_493934536 分钟前
mysql如何使用HAVING过滤分组_mysql分组后的二次筛选
jvm·数据库·python
石榴树下的七彩鱼6 分钟前
智能抠图 API 接入实战:3 行代码实现图片自动去背景(Python / Java / PHP / JS)
java·图像处理·人工智能·python·php·api·抠图
2301_764150569 分钟前
如何在 Laravel Excel 导入时校验并阻止重复列值
jvm·数据库·python
telllong9 分钟前
Python异步编程从入门到不懵:asyncio实战踩坑指南
开发语言·python
知兀10 分钟前
【Result类】(使用/不使用<T> data的情况);自带静态方法、纯数据类;
java·开发语言