Qt5数据库操作之sqlite

2019-09-02 16:27:05 浏览数 (1)

在编写程序的过程中,有一些数据希望软件再次运行时可以记录上一次用户的一些操作,比如服务器的ip和端口号等。对于数据量比较小的,在Qt中可以使用QSetting来记录。但对于一些数据量比较大的,肯定不能使用QSetting了。此时一般会选择使用数据库来记录。

这里简单介绍下SQLite。SQLite是一款轻型的文件型数据库。主要应用于嵌入式领域,支持跨平台。另外SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

程序平台:ubuntu、qt5

本次主要验证创建数据库、创建表、插入数据、修改数据、删除数据、查找数据等功能。

1. 创建数据库文件设置名称

代码语言:javascript复制
void Widget::on_pbn_createdataBase_clicked()
{
    QDir currentDir = QDir::current();
    qDebug() << currentDir.absolutePath();
    //指定该连接使用的数据库驱动,没有设置第二个参数即为默认连接
    m_db = QSqlDatabase::addDatabase("QSQLITE");
    //创建一个有名字的连接
    // QSqlDatabase db1=QSqlDatabase::addDatabase("QSQLITE","dapi");
    //设置数据库名。若没有数据库则会创建数据库.(即build****-Debug下没有*.db的      数据库文件,则会创建)
    m_db.setDatabaseName("mydatabase.db");
//    //设置主机名
//    db.setHostName("compute");
//    //设置用户名和密码
//    db.setUserName("dapi");
//    db.setPassword("1");
}

2. 创建表插入数据

代码语言:javascript复制
void Widget::on_pbn_insertdata_clicked()
{
        //打开数据库
    if(m_db.open()==true)
    {
        qDebug("insert data");
        //用它来对数据库进行操作
        QSqlQuery query(m_db);
        //建表 后面是SQL语句
        query.exec("create table student(id int primary key,name varchar(20))");

        //向student表插入数据
        query.exec("insert into student values(1,'大皮')");
    }

    else
        qDebug("insert data faild");
}

3. 查询数据

代码语言:javascript复制
void Widget::on_pbn_getValue_clicked()
{
    //打开数据库
    if(m_db.open())
    {
        qDebug("open database success!");
        QSqlQuery query(m_db);
        //查询student表的所有数据
        query.exec("select * from student");

        while(query.next())
            //将student表的值打印出来
            qDebug()<<"id:"<<query.value(0).toString()<<"              name:"<<query.value(1).toString()<<"n";
    }

    else
        qDebug("no");

}

4. 更新数据

代码语言:javascript复制
void Widget::on_pbn_updateData_clicked()
{

    if(m_db.open())
    {
        qDebug("update data");
        QSqlQuery query(m_db);
        query.exec("update student set name='小皮' where id=1");
    }//更新数据

5. 删除数据

代码语言:javascript复制
void Widget::on_pbn_delete_clicked()
{
    //打开数据库
    if(m_db.open())
    {
        qDebug("open database success!");
        QSqlQuery query(m_db);
        //删数据
        query.exec("delete from student where id=1 and name='小皮'");
    }

    else
        qDebug("no");
}

最后,程序运行结果:

0 人点赞