Python-操作数据库之pymysql

import pymysql
import yaml

'''
mysql.connector基本应用
数据库:存储项目数据
验证数据  -->代码取数据库数据与实际结果进行比对
步骤:
    1、连接数据库
    2、创建游标实例
    3、调用游标实例的excute(sql)  excute(sql,sql_value,bool)sql语句
    
    sql语句  -->读取yaml数据
    执行语句  --> excute
    
注意: 防止SQL注入,where/delete/update/insert等涉及到查询的值都使用占位符%s,mysql.connector/pymysql模块会自动转义    
'''
class MySQL:
    def __init__(self,name):
        self.db = pymysql.connect(
            host="localhost",
            database=name,
            user="root",
            password="admin123"
        )
        # 获取游标实例
        self.cursor = self.db.cursor()
        print(self.cursor)

    def excute_sql_val(self,sql,sql_val=None):
        self.cursor.execute(sql,sql_val)
        for data in self.cursor:
            return data

    def update_sql_val(self,sql,sql_val=None):
        self.cursor.execute(sql,sql_val)
        self.db.commit()
        print(self.cursor.rowcount, "db have changed")

    #需要一次性插入多行数据
    def excute_many(self,sql,sql_val):
        self.cursor.executemany(sql,sql_val)
        self.db.commit()
        print(self.cursor.rowcount, "many sqls have excuted")

    #获取所有行
    def fetchall(self,sql,sql_val=None):
        self.cursor.execute(sql,sql_val)
        res = self.cursor.fetchall()
        for data in res:
            return data

    #只返回结果的第一行
    def fetchone(self,sql,sql_val=None):
        self.cursor.execute(sql,sql_val)
        res = self.cursor.fetchone()
        return res




mysql = MySQL(name="mydatabase")
with open(file="sql_data.yaml",mode="r",encoding="UTF-8") as file:
    data = yaml.load(stream=file,Loader=yaml.FullLoader)
print(type(data))
print(data)
for k,v in data.items():
    mysql.excute_sql_val(sql=v)

 

posted @   美女爱找茬  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2019-08-13 linux系统命令大全
点击右上角即可分享
微信分享提示