Python操作MySQL封装

引言

MySQL是一个流行的开源关系型数据库管理系统,被广泛应用于各种类型的应用程序中。Python是一种简洁而强大的编程语言,具有丰富的库和工具,可以方便地与MySQL进行交互。在本文中,我们将介绍如何使用Python操作MySQL,并通过封装实现更加简洁和灵活的代码。

MySQL数据库连接

在开始操作MySQL之前,我们首先需要连接到MySQL数据库。Python提供了mysql-connector-python库,该库是Python对MySQL官方提供的驱动程序的封装。我们可以使用该库来建立与MySQL数据库的连接。

首先,我们需要安装mysql-connector-python库。可以通过以下命令在终端中安装:

pip install mysql-connector-python

安装完成后,我们可以使用以下代码来建立与MySQL数据库的连接:

import mysql.connector

cnx = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

print(cnx)

在上面的代码中,我们使用mysql.connector.connect()函数创建与MySQL数据库的连接。我们需要提供数据库的主机名(host)、用户名(user)、密码(password)和数据库名(database)。成功连接后,mysql.connector.connect()函数将返回一个连接对象,我们可以使用该对象来执行SQL查询和操作。

数据库操作

一旦我们成功连接到MySQL数据库,我们可以执行各种数据库操作,如创建表、插入数据、查询数据等。

创建表

我们可以使用CREATE TABLE语句创建数据库表。以下是一个创建表的示例代码:

import mysql.connector

cnx = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

cursor = cnx.cursor()

sql = "CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))"
cursor.execute(sql)

print("Table created successfully")

cnx.close()

在上面的代码中,我们使用CREATE TABLE语句创建一个名为customers的表,该表包含id、name和address三个字段。id字段是自增的主键。

插入数据

我们可以使用INSERT INTO语句向表中插入数据。以下是一个插入数据的示例代码:

import mysql.connector

cnx = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

cursor = cnx.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
cursor.execute(sql, val)

cnx.commit()

print("{} record inserted".format(cursor.rowcount))

cnx.close()

在上面的代码中,我们使用INSERT INTO语句向customers表中插入一条数据,数据包含name和address两个字段。我们使用%s作为占位符,然后通过execute()方法将实际的值传递给占位符。最后,我们使用commit()方法提交事务,并使用rowcount属性获取插入的记录数。

查询数据

我们可以使用SELECT语句从表中查询数据。以下是一个查询数据的示例代码:

import mysql.connector

cnx = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

cursor = cnx.cursor()

sql = "SELECT * FROM customers"
cursor.execute(sql)

results = cursor.fetchall()

for row in results:
  print(row)

cnx.close()

在上面的代码中,我们使用SELECT语句从customers表中查询所有数据。我们使用fetchall()方法获取查询结果,并使用循环遍历结果。

封装MySQL操作

为了提高代码的可重用性和可维护性,我们可以将MySQL操作封装到一个类中。以下是一个简单的MySQL封装类的示例代码:

import mysql.connector

class MySQLHelper:
    def __init__(self, host, user, password, database):
        self.host = host
        self.user = user
        self.password = password
        self.database = database
        self.cnx = None
        self.cursor = None

    def connect(self):
        self.cnx = mysql.connector.connect(
            host=self.host,
            user=self.user,
            password=self.password,
            database=self.database
        )
        self.cursor = self.cnx.cursor()

    def disconnect(self):
        if self.cursor is not