SQLite应用之路---CppSqlite

CppSqLite对SQLite的API进行了一次封装,让开发人员更加方便的使用SQLite。

1.准备一下

(1)CppSQLite3.h 和CppSQLite3.cpp

(2)sqlite3.h、sqlite3.lib和sqlite3.dll

在使用这个类的时候,你需要确保几件事情:首先你要下载上诉5个文件。其次就是在你的工程中引入,sqlite3.lib,最后要将CppSQLite3.h 和CppSQLite3.cpp添加到你的工程中。

上述几个文件可以在这里下载

2.打开数据库

代码:

CppSQLite3DB db;
db.open("data.db");
db.close();

CppSQLite3DB是一个核心类,之后的查询等数据库操作都要借助这个类。打开,关闭就像操作一个文件。

3.查询

代码:

CppSQLite3Queryquery = db.execQuery("select * fromtarget_table");while(!query.eof()){cout<<"name:"<<query.getStringField("name")<<"age : "<<query.getIntField("age")<<endl;query.nextRow();}query.finalize();

CppSQLite3Query是一个查询返回对象,查询完后可以利用此类。这里就使用了CppSQLite3DB的一个函数execQuery,只要将查询sql传入即可。

eof函数:判断是否还有数据;

nextRow函数:移到下一条记录;

getStringField函数:将获得相应字段的内容,以字符串形式返回;

getIntField函数:将获得相应字段的内容,以整形形式返回。

注意的是这个类产生之后要finalize。

4.数据库更改操作

代码:

db.execDML("insert into target_table(name,age)values('xinxian',25)");
db.execDML("update target_table set age = 21 where name = 'xinxian'");

上面的代码就说明了一切,应该无需再解释。

5.statement对象

代码:

CppSQLite3Statementsmt = db.compileStatement("insert intotarget_table(name,age) values(?,?)");for (int i = 0 ; i < 10; ++i){smt.bind(1,"test_");smt.bind(2,i);smt.execDML();}smt.finalize();

CppSqlite当然也提供Statement对象,用法也相当简单,参照上诉代码,应该不难理解。注意的是,CppSQLite3Statement和CppSQLite3Query一样,最后也要finalize。

6.异常处理

代码:

try{code……}catch(CppSQLite3Exception & e) {}

将操作代码放入try里面,使用CppSQLite3Exception & 来catch。

7.总结

笔者这篇文章简单入门介绍CppSqlite,之后会介绍一些CppSqlite一些高级特性,并结合Sqlite本身的特点,讨论一下多线程操作,加密解密以及一些Sqlite的限制。

 

 

SQLite应用之路---CppSqlite相关推荐

  1. SQLite学习之路② Pager模块介绍和Pager对象(2021SC@SDUSC)

    2021SC@SDUSC SQLite 学习之路 第二节 模块介绍和Pager对象 Pager介绍 Pager对象 Pager介绍 根据上图我们能够大致了解Pager模块在SQLite占据的地位,它是 ...

  2. SQLite优化之路——让SQLite油门到底

    1.前言   以前对于数据库中的知识,只是知道其理论.并没有真正的接触过大量数据的数据库,没有经过实践(除了简单的增删改查,或者随便建个索引看看效率是不是提升了).所以对于很多知识,其实根本就没有弄明 ...

  3. UI一揽子计划 19 (数据库管理系统、SQL语句、iOS 的数据库实现技术)

    一.数据库管理系统 1. 以一定的方式存储在一起; 2. 能为多个用户共享 3. 具有尽可能小的冗余度 4. 与程序彼此独立的数据集合 二.SQL语句 SQlite常用语句 注:SQlite语句 不区 ...

  4. cyq.data mysql_CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]...

    前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.0 版本发布,又过去一个来月了,不过也过了一个新年了. 由于过年原因,因此框架也没多折腾什么,只是年前年后顺路把sqlite,MysqL两种 ...

  5. 学习SQLite之路(五) C/C++ SQLite开发实例

    介绍一种乌班图中使用sqlite的用法,非常简单,下面的例子是在乌班图12.04中实现的: 1,先安装两个东西: sudo apt-get install sqlite sqlite3 sudo ap ...

  6. 学习SQLite之路(二)

    下面就是真正关于数据库的一些知识了: 20160614更新 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 1. SQLite创建表: 基本 ...

  7. sqlite journal恢复数据_误删不跑路,大牛运维神技能分分钟恢复

    一.背景 突发事件,应用上传的数据被程序自动删掉了,可悲的是还没有数据备份,数据是放在系统的 /data/webapps/xxxx/upload 目录下面,可把我们急坏了,之前又没有做过数据恢复的测试 ...

  8. 【跃迁之路】【425天】刻意练习系列184—SQL(2018.04.06)

    @(跃迁之路)专栏 叨叨两句 技术的精进不能只是简单的刷题,而应该是不断的"刻意"练习 该系列改版后正式纳入[跃迁之路]专栏,持续更新 刻意练习--MySQL 2018.04.02 ...

  9. Python SQLite 用法

    Python SQLite 用法 具体可以参考网址 代码: #导入 import sqlite3 #连接库,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象. # test.db:数据路路 ...

最新文章

  1. 网页快照是什么?对SEO优化有什么作用?
  2. iview select选中值取值_完美解决iview 的select下拉框选项错位的问题
  3. 发现一个病毒文件你删了他又自动创建怎么解决
  4. java接口文档生成工具_【分享】接口文档生成工具apipost
  5. Eclipse自定义文档注释和方法注释
  6. 力扣题目——1557. 可以到达所有点的最少点数目
  7. 李宏毅机器学习——序列标记问题
  8. qpsk 16qam matlab,谁能提供16qam和qpsk调制解调的ofdm程序
  9. 斐讯路由器使用说明,校园网破解,breed控制台,华硕固件
  10. 菜鸟历程1腾讯云服务器 10元学生套餐购买
  11. ORCA(Optimal Reciprocal Collision Avoidance)笔记
  12. 如何制作一个可控制的人体骨骼模型
  13. NB-IoT:它是如何工作的?第2部分
  14. ioctl函数的inode参数
  15. java操控手机刷锦鲤看看(一个类似头条的赚钱app)
  16. excel文件导出进度条的实现
  17. xml解析方式与效率对比
  18. origin画图很多个重叠在一起的
  19. tcpdump+wireshark双剑合璧
  20. Vue—制作一个todoList

热门文章

  1. 浸会大学计算机博士学位申请条件,中国香港浸会大学博士申请条件
  2. ATX微机开关电源维修教程(典型)
  3. 创建 EA 交易优化的自定义标准
  4. Photoshop界面组成及介绍
  5. 蚂蚁金服回应,支付宝年度账单“虚高”
  6. 广州优漫动游公司:UI设计中的详情页怎么设计?
  7. 关于EmuELC的ES设置菜单系统语言包修改
  8. 科普 | 摆脱社交恐惧症?做这一件事就够了
  9. AOPA考证流程与考试步骤(非常详细)
  10. AI科普(二):人工智能的根本任务