Pyside6操作mysql数据库

目录

一:连接数据库

二:数据操作


一:连接数据库

Pyside6中可以使用QSqlDatabase连接数据库,以下是一个连接mysql的例子:

import sys
from PySide6.QtWidgets import QApplication, QWidget

from PySide6.QtSql import QSqlDatabase,QSqlQuery


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('MySQL 数据库连接示例')
        self.setGeometry(100, 100, 500, 500)

        # 创建数据库连接
        self.db = QSqlDatabase.addDatabase('QODBC')
        self.db.setDatabaseName("mysql")
        self.db.setHostName('localhost')  # 数据库服务器地址

        self.db.setUserName('root')  # 数据库用户名
        self.db.setPassword('root')  # 数据库密码

        if not self.db.open():
            print('无法连接到数据库')
            sys.exit(1)
        else:
            print('成功连接到数据库')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())

二:数据操作

 我们使用QSqlQuery对象执行sql语句如果操作成功,我们使用commit()方法提交事务。如果操作过程中出现错误,我们将输出操作失败”,并使用rollback()方法回滚事务

查询数据:

         # 执行查询语句并获取结果
        query = QSqlQuery()
        if query.exec('SELECT * FROM course'):
            while query.next():
                id = query.value(0)
                name = query.value(1)
                print(f'ID: {id}, Name: {name}')
        else:
            print('查询失败')
            query.finish()

更新数据:

 query = QSqlQuery()
            if query.exec('UPDATE courseSET name = "John" WHERE id = 1'):
                print('更新成功')
                self.db.commit()
            else:
                print('更新失败')
                self.db.rollback()

添加数据:

  # 执行插入语句并提交事务  
            query = QSqlQuery()
            if query.exec('INSERT INTO mytable (id, name) VALUES (2, "John")'):
                print('插入成功')
                self.db.commit()
            else:
                print('插入失败')
                self.db.rollback()
 

删除数据:

 # 执行删除语句并提交事务  
            query = QSqlQuery()
            if query.exec('DELETE FROM mytable WHERE id = 1'):
                print('删除成功')
                self.db.commit()
            else:
                print('删除失败')
                self.db.rollback()

Pyside6操作mysql数据库_第1张图片

你可能感兴趣的:(Pyside6开发,数据库,mysql,python)