📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
前言
封装 MySQL 操作可以让你的代码更加模块化、可重用,并且更容易维护。通过封装,你可以将与数据库交互的细节隐藏起来,对外提供一个简洁的接口。
完整代码
import mysql.connector
from mysql.connector import Error
class MySQLWrapper:
def __init__(self, host, user, password, database):
"""初始化数据库连接参数。"""
self.host = host
self.user = user
self.password = password
self.database = database
self.connection = None
def connect(self):
"""连接到 MySQL 数据库。"""
try:
self.connection = mysql.connector.connect(
host=self.host,
user=self.user,
password=self.password,
database=self.database
)
if self.connection.is_connected():
db_info = self.connection.get_server_info()
print(f"Connected to MySQL Server version {db_info}")
except Error as e:
print(f"Error while connecting to MySQL: {e}")
self.connection = None
def close(self):
"""关闭数据库连接。"""
if self.connection and self.connection.is_connected():
self.connection.close()
print("MySQL connection is closed.")
def execute_query(self, query, values=None, commit=False):
"""执行 SQL 语句,并根据需要返回结果或提交更改。"""
if not self.connection or not self.connection.is_connected():
print("Database connection is not established.")
return None
cursor = self.connection.cursor()
try:
if values:
cursor.execute(query, values)
else:
cursor.execute(query)
if commit:
self.connection.commit()
# 如果是 SELECT 查询,返回结果
if query.strip().upper().startswith('SELECT'):
return cursor.fetchall()
else:
return cursor.rowcount
except Error as e:
print(f"Error executing SQL: {e}")
return None
finally:
cursor.close()
def query_data(self, query, values=None):
"""执行查询操作。"""
return self.execute_query(query, values, commit=False)
def insert_data(self, query, values):
"""执行插入操作。"""
return self.execute_query(query, values, commit=True)
def update_data(self, query, values):
"""执行更新操作。"""
return self.execute_query(query, values, commit=True)
def delete_data(self, query, values):
"""执行删除操作。"""
return self.execute_query(query, values, commit=True)
def main():
# 创建 MySQLWrapper 实例并连接到数据库
db = MySQLWrapper(host='localhost', user='root', password='password', database='testdb')
db.connect()
if db.connection is not None:
# 查询数据
query = "SELECT * FROM users WHERE age > %s"
results = db.query_data(query, (18,))
print("Query Results:")
for row in results:
print(row)
# 插入数据
insert_query = "INSERT INTO users (name, age) VALUES (%s, %s)"
insert_values = ("John Doe", 25)
rows_affected = db.insert_data(insert_query, insert_values)
print(f"Insert affected {rows_affected} rows.")
# 更新数据
update_query = "UPDATE users SET age = %s WHERE name = %s"
update_values = (26, "John Doe")
rows_affected = db.update_data(update_query, update_values)
print(f"Update affected {rows_affected} rows.")
# 删除数据
delete_query = "DELETE FROM users WHERE name = %s"
delete_values = ("John Doe",)
rows_affected = db.delete_data(delete_query, delete_values)
print(f"Delete affected {rows_affected} rows.")
# 关闭数据库连接
db.close()
if __name__ == '__main__':
main()
说明
类定义:
MySQLWrapper 类封装了与 MySQL 数据库交互的所有方法。
__init__ 方法初始化数据库连接参数。
connect 方法建立数据库连接。
close 方法关闭数据库连接。
execute_query 方法执行 SQL 语句,并根据需要返回结果或提交更改。
query_data, insert_data, update_data, delete_data 方法分别封装了查询、插入、更新和删除操作。
主函数:
创建 MySQLWrapper 实例并连接到数据库。
执行查询、插入、更新和删除操作。
关闭数据库连接。
运行代码
确保你已经安装了 mysql-connector-python 库:
pip install mysql-connector-python
然后运行代码:
python your_script_name.py
请将 your_script_name.py 替换为你的脚本文件名。
小结
通过上述步骤,我们封装了 MySQL 数据库的操作,包括连接数据库、执行 SQL 语句、查询、插入、更新和删除等常见功能。这样的封装方式不仅提高了代码的可读性和可维护性,还使得代码更加简洁明了。你可以根据实际需求进一步扩展这些函数的功能,比如添加事务处理、错误处理等。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】