python连接mysql数据库通用类

在 Python 中创建一个通用的数据库连接类,用于连接 MySQL 数据库并执行常见的数据库操作,可以提高代码的复用性和可维护性。下面是一个示例:

```python

import mysql.connector

class MySQLDatabase:

def init(self, host, user, password, database):

self.host = host

self.user = user

self.password = password

self.database = database

self.connection = None

self.cursor = None

def connect(self):

try:

self.connection = mysql.connector.connect(

host=self.host,

user=self.user,

password=self.password,

database=self.database

)

self.cursor = self.connection.cursor()

print("Connected to MySQL database")

except mysql.connector.Error as error:

print(f"Error connecting to MySQL database: {error}")

def execute_query(self, query):

try:

self.cursor.execute(query)

self.connection.commit()

print("Query executed successfully")

except mysql.connector.Error as error:

print(f"Error executing query: {error}")

def fetch_query(self, query):

try:

self.cursor.execute(query)

rows = self.cursor.fetchall()

return rows

except mysql.connector.Error as error:

print(f"Error fetching data: {error}")

return None

def close_connection(self):

if self.connection.is_connected():

self.cursor.close()

self.connection.close()

print("MySQL connection closed")

Example of usage:

if name == "main":

Initialize MySQLDatabase object

db = MySQLDatabase(host="your_host",

user="your_username",

password="your_password",

database="your_database_name")

Connect to the database

db.connect()

Example query execution

create_table_query = """

CREATE TABLE IF NOT EXISTS users (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50) NOT NULL,

email VARCHAR(100) NOT NULL

)

"""

db.execute_query(create_table_query)

Example data insertion

insert_query = """

INSERT INTO users (username, email)

VALUES ('john_doe', 'john@example.com')

"""

db.execute_query(insert_query)

Example data retrieval

select_query = "SELECT * FROM users"

rows = db.fetch_query(select_query)

if rows:

for row in rows:

print(row)

Close the database connection

db.close_connection()

```

在这个示例中:

  • `MySQLDatabase` 类封装了 MySQL 数据库的连接和常用操作,包括连接、执行查询、执行插入操作以及关闭连接。

  • `init` 方法用于初始化数据库连接参数。

  • `connect` 方法用于建立数据库连接。

  • `execute_query` 方法用于执行 SQL 查询或更新操作。

  • `fetch_query` 方法用于执行查询并获取结果集。

  • `close_connection` 方法用于关闭数据库连接。

根据自己的需求扩展这个类,添加更多的数据库操作方法或错误处理机制。记得替换示例中的 `your_host`、`your_username`、`your_password` 和 `your_database_name` 为实际的数据库连接信息。

相关推荐
惜分飞11 分钟前
记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复---惜分飞
数据库·oracle
cspttty14 分钟前
2026秋招供应链分析师技能栈:SQL、Excel、BI与业务分析
数据库·sql·excel
愚公移山填海21 分钟前
【无标题】
笔记·python·学习·pycharm
天远API30 分钟前
零信任架构实战:基于天远公安三要素即时版构建自动化理赔合规网关
人工智能·python·架构·自动化
言乐631 分钟前
Python加速器2视频网页加速器
前端·javascript·css·python·音视频
Omics Pro36 分钟前
澳科大:自进化AI虚拟细胞
数据库·人工智能·算法·机器学习·自然语言处理
ShineWinsu37 分钟前
对于MySQL:索引的解析
linux·数据库·mysql·面试·笔试·索引·海量数据
我是苏苏41 分钟前
Redis开发09:Windows系统下主从复制的配置教程
数据库·redis·缓存
计算机源码社42 分钟前
基于Hadoop+Spark的黄金市场历史数据特征分析与可视化大屏 基于K-Means聚类算法的黄金历史价格阶段划分研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
hhzz44 分钟前
【OpenCV 入门到精通 05】核心操作与像素处理:ROI、运算与性能优化
人工智能·python·opencv·性能优化