sqlite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。
qt5以上版本可以直接使用sqlite。
1、修改.pro文件,添加sql模块:
qt += sql
2、main.cpp代码如下:
#include "mainwindow.h"
#include <qapplication>
//添加头文件
#include <qdebug.h>
#include <qsqldatabase>
#include <qsqlerror>
#include <qsqlquery>
int main(int argc, char *argv[])
{
qapplication a(argc, argv);
//建立并打开数据库
qsqldatabase database;
database = qsqldatabase::adddatabase("qsqlite");
database.setdatabasename("mydatabase.db");
if (!database.open())
{
qdebug() << "error: failed to connect database." << database.lasterror();
}
else
{
qdebug() << "succeed to connect database." ;
}
//创建表格
qsqlquery sql_query;
if(!sql_query.exec("create table student(id int primary key, name text, age int)"))
{
qdebug() << "error: fail to create table."<< sql_query.lasterror();
}
else
{
qdebug() << "table created!";
}
//插入数据
if(!sql_query.exec("insert into student values(1, \"wang\", 23)"))
{
qdebug() << sql_query.lasterror();
}
else
{
qdebug() << "inserted wang!";
}
if(!sql_query.exec("insert into student values(2, \"li\", 23)"))
{
qdebug() << sql_query.lasterror();
}
else
{
qdebug() << "inserted li!";
}
//修改数据
sql_query.exec("update student set name = \"qt\" where id = 1");
if(!sql_query.exec())
{
qdebug() << sql_query.lasterror();
}
else
{
qdebug() << "updated!";
}
//查询数据
sql_query.exec("select * from student");
if(!sql_query.exec())
{
qdebug()<<sql_query.lasterror();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toint();
qstring name = sql_query.value(1).tostring();
int age = sql_query.value(2).toint();
qdebug()<<qstring("id:%1 name:%2 age:%3").arg(id).arg(name).arg(age);
}
}
//删除数据
sql_query.exec("delete from student where id = 1");
if(!sql_query.exec())
{
qdebug()<<sql_query.lasterror();
}
else
{
qdebug()<<"deleted!";
}
//删除表格
sql_query.exec("drop table student");
if(sql_query.exec())
{
qdebug() << sql_query.lasterror();
}
else
{
qdebug() << "table cleared";
}
//关闭数据库
database.close();
return a.exec();
}
3、应用程序输出如下:
4、创建的 mydatabase.db 在build的这个文件夹下:
d:\qt\project\build-sl-desktop_qt_5_10_1_mingw_32bit-debug
到此这篇关于qt5中使用sqlite的实现方法的文章就介绍到这了,更多相关qt5使用sqlite内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!