简介:个人学习分享,如有错误,欢迎批评指正。
Python 连接 MySQL 数据库
Python 连接 MySQL 数据库的常用方法包括使用 mysql-connector-python、PyMySQL 和 SQLAlchemy。以下是每种方法的简单示例:
1. 使用 mysql-connector-python
import mysql.connector
# 建立连接
conn = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
# 创建游标对象
cursor = conn.cursor()
# 执行查询
cursor.execute("SELECT * FROM your_table")
# 获取结果
results = cursor.fetchall()
# 关闭游标和连接
cursor.close()
conn.close()
# 打印结果
for row in results:
print(row)
2. 使用 PyMySQL
import pymysql
# 建立连接
conn = pymysql.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
# 创建游标对象
cursor = conn.cursor()
# 执行查询
cursor.execute("SELECT * FROM your_table")
# 获取结果
results = cursor.fetchall()
# 关闭游标和连接
cursor.close()
conn.close()
# 打印结果
for row in results:
print(row)
3. 使用 SQLAlchemy
from sqlalchemy import create_engine
# 创建引擎
engine = create_engine("mysql+pymysql://your_username:your_password@localhost/your_database")
# 连接数据库并执行查询
with engine.connect() as conn:
result = conn.execute("SELECT * FROM your_table")
for row in result:
print(row)
选择合适的连接方式
- 如果需要一个轻量级的解决方案,可以使用 mysql-connector-python 或 PyMySQL。
- 如果你需要 ORM(对象关系映射)功能或更复杂的数据库操作,SQLAlchemy 是一个更好的选择。
Java 连接 MySQL 数据库
JDBC概述
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。
JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。
JDBC入门案例
JDBC核心类和接口
- DriverManager:用于注册驱动
- Connection: 表示与数据库创建的连接
- Statement/PrepareStatement: 操作数据库sql语句的对象
- ResultSet: 结果集或一张虚拟表
执行流程
1. 添加 MySQL JDBC 驱动程序
首先,确保你已经添加了 MySQL JDBC 驱动程序到你的项目中。你可以在 Maven 项目中通过添加以下依赖来实现:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
如果你不是使用 Maven 项目,你需要手动下载 mysql-connector-java 的 .jar 文件并将其添加到项目的类路径中。
2. 使用 JDBC 连接 MySQL 数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class MySQLConnection {
public static void main(String[] args) {
// 数据库连接参数
String url = "jdbc:mysql://localhost:3306/your_database";
String username = "your_username";
String password = "your_password";
Connection conn = null;
Statement stmt = null;
try {
// 1. 注册 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 打开连接
conn = DriverManager.getConnection(url, username, password);
// 3. 执行查询
stmt = conn.createStatement();
String sql = "SELECT * FROM your_table";
ResultSet rs = stmt.executeQuery(sql);
// 4. 处理查询结果
while (rs.next()) {
// 例如获取列名为 'id' 的数据
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
// 5. 关闭 ResultSet 和 Statement
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
结~~~