Qt5之数据库操作笔记(一)

最近学习了Qt5下的数据库操作,特做此笔记,总结一下,与大家共勉,其中许多内容借鉴于霍亚飞老师的书籍——《Qt Creator快速入门(第二版)》。
软件版本:Qt Creator 3.1.2(opensource)
Based on Qt 5.3.1(MSVC 2010, 32 bit)
Built on Jun 23 2014 at 04:13:10

1. 数据库简介

Qt中的 QtSql 模块提供了对数据库的支持,该模块中的众多类基本上可以分为3层,如下表所示。

层次 Qt提供的类
用户接口层 QSqlQueryModel、QSqlTableModel 和 QSqlRelationalTableModel
SQL接口层 QSqlDatabase、QSqlQuery、QSqlError、QSqlField、QSqlIndex 和 QSqlRecord
驱动层 QSqlDriver、QSqlDriverCreator< T >、QSqlDriverCreatorBase、QSqlDriverPlugin 和 QSqlResult

其中,驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁;
SQL接口层提供了对数据库的访问,其中的 QSqlDatabase 类用来创建连接,QSqlQuery 类可以使用 SQL 语句来实现与数据库交互,其他几个类对该层提供了支持;用户接口层的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用 模型/视图 框架实现的,它们是更高层次的抽象,即便不熟悉 SQL 也可以操作数据库。如果要使用 QtSql 模块中的这些类,需要在项目文件(.pro 文件)中添加“QT+=sql”这行代码。对应数据库部分的内容,可以在帮助中查看 SQL Programming 关键字。

2. QqlDatabase 类中的函数

class Q_SQL_EXPORT QSqlDatabase
{
public:
    QSqlDatabase();
    QSqlDatabase(const QSqlDatabase &other);
    ~QSqlDatabase();

    QSqlDatabase &operator=(const QSqlDatabase &other);

    bool open();
    bool open(const QString& user, const QString& password);
    void close();
    bool isOpen() const;
    bool isOpenError() const;
    QStringList tables(QSql::TableType type = QSql::Tables) const;
    QSqlIndex primaryIndex(const QString& tablename) const;
    QSqlRecord record(const QString& tablename) const;
    QSqlQuery exec(const QString& query = QString()) const;
    QSqlError lastError() const;
    bool isValid() const;

    bool transaction();
    bool commit();
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值