sqlite,本地数据库。主要运用在小型的程序,传送方便(如发送附带数据库的程序,但MySQL有点大,或许没安装)。

如何创建本地数据库?

  1.新建一个.txt的文本文件。

  2.直接将后缀名有.txt改为.db即可。

  

思路和用法与前面的MySQL一样,连接上有点区别,其他一样。

1.连接数据库的类型不同

db=QSqlDatabase::addDatabase("QSQLITE");

2.Sqlite只需连接数据库,不需要设置数据库的地址,用户名,密码等

db.setDatabaseName("../student.db");

源代码:

#include "widget.h"

#include "ui_widget.h"

#include <QDebug>

#include<QtSql/QSqlDatabase>

#include <QSqlQuery>

#include <QVariantList>

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

QSqlDatabase db;

//查询qt支持的数据库驱动

qDebug()<<QSqlDatabase::drivers();

db=QSqlDatabase::addDatabase("QSQLITE");

//连接数据库

db.setDatabaseName("../student.db");

//打开数据库

if(!db.open())

{

return ;

}

//创建二维表

QSqlQuery query;;

query.exec("CREATE TABLE student(id INT PRIMARY KEY,sname VARCHAR(10),age INT,score INT)");

//批量添加

//预处理

query.prepare("INSERT INTO student(id,sname,age,score) VALUES(:id,:sname,:age,:score)");

//给字段设置内容

QVariantList idList;

idList<<1<<2<<3<<4;

QVariantList snameList;

snameList<<"小红"<<"小黑"<<"小白"<<"小华";

QVariantList ageList;

ageList<<15<<12<<23<<34;

QVariantList scoreList;

scoreList<<55<<66<<77<<88;

//给字段绑定相应的值

query.bindValue(":id",idList);

query.bindValue(":sname",snameList);

query.bindValue(":age",ageList);

query.bindValue(":score",scoreList);

//执行预处理命令

query.execBatch();

//显示数据

query.exec("SELECT * FROM student");

while(query.next())

{

qDebug()<<query.value("id").toInt()

<<query.value("sname").toString()

<<query.value("age").toInt()

<<query.value("score").toInt();

}

}

Widget::~Widget()

{

delete ui;

}

结果图:

34sqlite的更多相关文章

随机推荐

  1. 京东云擎”本周四推出一键免费安装Discuz论坛

    “京东云擎”本周四推出一键免费安装Discuz论坛了,让用户能在1分钟之内建立自己的论坛.这是继上周云擎推出一键安装WordPress之后的又一重大免费贡献! 云擎: http://jae.jd.co ...

  2. mysql 中实现行变列

    前言: mysql行列变化,最难的就是将多个列变成多行,使用的比较多的是统计学中行变列,列变行,没有找到现成的函数或者语句,所以自己写了存储过程,使用动态sql来实现,应用业务场景,用户每个月都有使用 ...

  3. Map的key不变,value相加

    判断map中是否含有某个key,如包含则结果value相加,如不包含则新增. 直接上demo吧: package javademo; import java.util.HashMap; import ...

  4. Tomcat连接参数的优化,主要是针对吞吐量做优化

    Tomcat连接参数的优化,主要是针对吞吐量做优化: 修改conf/server.xml文件,把原来 <Connector port="8080" protocol=&quo ...

  5. nutch 存储到数据库

    就像我们知道的一样,nutch是一个架构在lucene之上的网络爬虫+搜索引擎. 是由lucene的作者在lucene基础之上开发,并整合了hadoop,实现在分布式云计算,使用google标准的HF ...

  6. cocos2d-x游戏引擎核心之九——跨平台

    一.cocos2d-x跨平台 cocos2d-x到底是怎样实现跨平台的呢?这里以Win32和Android为例. 1. 跨平台项目目录结构 先看一下一个项目创建后的目录结构吧!这还是以HelloCpp ...

  7. (三)微信小程序之发送服务通知(模板消息)

    1.后端获取AccessToken返回给微信端 微信小程序端请求后端得到AccessToken   2.后端获取openid返回给微信端   微信小程序端登录请求后端得到openid   3.发送消息 ...

  8. poj_2286 线段树

    题目大意 在墙上贴海报,墙壁是由一排连续的瓷砖铺成,海报贴在墙壁上必须占据连续的几块瓷砖,海报可以互相覆盖,问最后可以看见几张海报(未被完全覆盖). 题目分析 墙壁是由连续的一个区间构成,每个海报占据 ...

  9. ajax操作的链式写法

    ajax操作的传统写法: $.ajax({ url: url, success: function(){ doWhenSuccess(); }, error: function(){ doWhenEr ...

  10. Android 简单案例:继承BaseAdapter实现Adapter

    import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import ...