前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt5数据库操作之sqlite

Qt5数据库操作之sqlite

作者头像
用户5908113
发布2019-09-02 16:27:05
3.2K0
发布2019-09-02 16:27:05
举报
文章被收录于专栏:Pou光明Pou光明

在编写程序的过程中,有一些数据希望软件再次运行时可以记录上一次用户的一些操作,比如服务器的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");
}

最后,程序运行结果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pou光明 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档