qt工程配置

Qt5中使用sql相关功能,需要在工程文件导入sql模块:

QT       += sql

头文件引入SQL模块类定义

#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlError>

创建数据库

qDebug()<<QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("testDB.db");
db.setUserName("root");
db.setPassword("123456"); 

上述第一行代码查看支持的数据库类型如下:

("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

后面几行表示创建一个名为testDB.db的SQLITE数据库,如果这个数据库不存在,则创建;数据库存在,后续的数据库操作在已有的数据库上进行。并设置数据库用户名为“root”,密码“123456”。

创建表

  • 新表的名字,在关键字CREATE TABLE之后给出;
  • 新表中,列的名字和定义用逗号隔开。

下面代码用来实现创建名为Customers的表。

bool isOk = db.open();
    if(!isOk){
        qDebug()<<"error info :"<<db.lastError();
    }
    else{
        QSqlQuery query;
        QString creatTableStr = "CREATE TABLE Customers \
                (                                       \
                  cust_id      char(10)  NOT NULL ,     \
                  cust_name    char(50)  NOT NULL ,     \
                  cust_address char(50)  NULL ,         \
                  cust_city    char(50)  NULL ,         \
                  cust_state   char(5)   NULL ,         \
                  cust_zip     char(10)  NULL ,         \
                  cust_country char(50)  NULL ,         \
                  cust_contact char(50)  NULL ,         \
                  cust_email   char(255) NULL           \
                );";
        query.prepare(creatTableStr);
        if(!query.exec()){
            qDebug()<<"query error :"<<query.lastError();
        }
        else{
            qDebug()<<"creat table success!";
        }
    }
    db.close();

操作数据库之前,先要打开数据库,打开成功后才能执行相关数据库操作,完成后,最好关闭数据库。

操作数据库需要用到QSqlQuery类,操作前必须定义一个对象。对数据库的操作,都是通过执行SQLite的语句完成的。

创建表格语句:CREATE TABLE <table_name> (f1 type1, f2 type2,…);

从上述代码可以看到,表明Customers紧跟在关键字CREATE TABLE之后。表的定义在圆括号之中,各列之间用逗号分隔,总共有9列。每个表列有NULL和NOT NULL两种模式。允许NULL值的列允许插入时不给出该列的值,反之,NOT NULL列必须有值。注意不要把NULL值和空字符串相混淆,空字符串是一个有效的值。

最后,用DB Browser for SQLite工具打开创建的testDB.db数据库,数据库表的结构如下图:

 

更多推荐