qt工程配置
这是要使用数据库的前提(注意哈)
添加头文件
向工程中添加qt提供的sql操作的头文件
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
#include <QVariant>
创建数据库
QSqlDatabase database;
//输出支持数据库的类型
qDebug()<<QSqlDatabase::drivers();
database = QSqlDatabase::addDatabase("QSQLITE");
//获取数据库,如果存在就直接打开,否则就新建一个
database.setDatabaseName("fisher.db");
//是否打开数据库成功的判断
if(!database.open())
{
qDebug()<<"Failed to open database:"<<database.lastError();
}
else
{
qDebug()<<"Success to open database";
}
创建表
//创建表
QSqlQuery sqlQuery;
//用于存储sql语句
QString sql;
sql = "create table fisher(fish_id int primary key,fish_name text,fish_score int)";
//创建表是否成功
if(!sqlQuery.exec(sql))
{
qDebug()<<"Failed to create table:"<<sqlQuery.lastError();
}
else
{
qDebug()<<"success to create";
}
SQL增删改查
SQL语句的三种字符拼接方法如下(以数据库插入为例):
其它的sql语句的执行类似
//执行插入语句
//sql语句第一种写法
char text[250] = '0';
sprintf(text,"insert into fisher values(%d,%s,%d)",1,"funny",200);
sqlQuery.exec(text);
//第二种写法
sql = QString("insert into fisher values('%1','%2','%3')").arg(1).arg("funny").arg(200);
sqlQuery.exec(sql);
//第三种写法
sqlQuery.exec("insert into fisher values(1,"funny",200)");
注意
database.open();
database.close();
数据库打开之后不使用时一定要记得关掉,不然会造成内存泄漏,将一直占用内存
用SQLiteExpertPers软件查看数据库结果