#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();
}
QT--SQLite的简单使用demo
最新推荐文章于 2022-08-08 11:10:57 发布