QT--SQLite的简单使用demo

33 篇文章 2 订阅
#include <QCoreApplication>
#include <QTextCodec>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QTime>
#include <QSqlError>
#include <QtDebug>
#include <QSqlDriver>
#include <QSqlRecord>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
//    QTextCodec::setCodecForLocal(QTextCodec::codecForLocal());//设置中文显示
    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setHostName("Administrator");//设置数据库主机名
    db.setDatabaseName("qtDB.db");//设置数据库名称
    db.setUserName("zhouhejun");//设置数据库用户名
    db.setPassword("123456");//设置数据库密码
    db.open();//打开连接

    //创建数据库表
    QSqlQuery query;
    bool success = query.exec("create table automobile (id int primary key,attribute varchar,type varchar,kind varchar,nation int,carnumber int,elevator int,distance int,oil int,temperature int)");
    if(success)
    {
        qDebug()<<QObject::tr("数据库表创建成功!");
    }
    else
    {
         qDebug()<<QObject::tr("数据库表创建失败!");
    }
    //查询
    query.exec("select * from automobile");
    QSqlRecord rec = query.record();
    qDebug()<<QObject::tr("automobile表字段数:")<<rec.count();
    //插入记录
    QTime time;
    time.start();
    query.prepare("insert into automobile values(?,?,?,?,?,?,?,?,?,?)");

    long records = 100;
    for(int i=0;i<records;++i)
    {
        query.bindValue(0,i);
        query.bindValue(1,"四轮");
        query.bindValue(2,"轿车");
        query.bindValue(3,"富康");
        query.bindValue(4,rand()%100);
        query.bindValue(5,rand()%10000);
        query.bindValue(6,rand()%300);
        query.bindValue(7,rand()%200000);
        query.bindValue(8,rand()%52);
        query.bindValue(9,rand()%100);
        success = query.exec();
        if(!success)
        {
            QSqlError lastError = query.lastError();
            qDebug()<<lastError.driverText()<<QString(QObject::tr("插入失败"));
        }
    }
    qDebug()<<QObject::tr("插入%1条记录,耗时:%2ms").arg(records).arg(time.elapsed());

    //排序
    time.restart();
    success = query.exec("select * from automobile order by id desc");
    if(success)
        qDebug()<<QObject::tr("排序%1条记录,耗时:%2ms").arg(records).arg(time.elapsed());
    else
        qDebug()<<"排序失败";
    //更新记录
    time.restart();//重启计时器
    for(int i=0;i<records;++i)
    {
        query.clear();
        query.prepare(QString("update automobile set attribute=?,type=?,kind=?,nation=?,carnumber=?,evevaltor=?,distance=?,oil=?,temperature=?,where id=%1").arg(i));

        query.bindValue(0,"四轮");
        query.bindValue(1,"轿车");
        query.bindValue(2,"富康");
        query.bindValue(3,rand()%100);
        query.bindValue(4,rand()%10000);
        query.bindValue(5,rand()%300);
        query.bindValue(6,rand()%200000);
        query.bindValue(7,rand()%52);
        query.bindValue(8,rand()%100);
        success = query.exec();
        if(!success)
        {
            QSqlError lastError = query.lastError();
            qDebug()<<lastError.driverText()<<QString(QObject::tr("更新失败"));
        }
    }
    qDebug()<<QObject::tr("更新%1条记录,耗时:%2ms").arg(records).arg(time.elapsed());

    //删除
    time.restart();//重启计时器
    query.exec("delete from automobile where id=15");
    //输出操作耗时
    qDebug()<<QObject::tr("删除%1条记录,耗时:%2ms").arg(records).arg(time.elapsed());
    return 0 ;
//    return a.exec();
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值