加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite应用之路

发布时间:2020-12-12 20:09:46 所属栏目:百科 来源:网络整理
导读:CppSqLite 对SQLite 的API进行了一次封装,让开发人员更加方便的使用SQLite。 1.准备一下 (1 )CppSQLite3.h 和CppSQLite3.cpp (2 )sqlite3.h、sqlite3.lib和sqlite3.dll 在使用这个类的时候,你需要确保几件事情:首先你要下载上诉5 个文件。其次就是在

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.打开数据库

代码:

[cpp] view plain copy print ?
  1. CppSQLite3DBdb;
  2. db.open("data.db");
  3. db.close();

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

3.查询

代码:

[cpp] view plain copy print ?
  1. CppSQLite3Queryquery=db.execQuery("select*fromtarget_table");
  2. while(!query.eof())
  3. {
  4. cout<<"name:"<<query.getStringField("name")<<"age:"<<query.getIntField("age")<<endl;
  5. query.nextRow();
  6. }
  7. query.finalize();


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

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

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

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

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

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

4.数据库更改操作

代码:

[cpp] view plain copy print ?
  1. db.execDML("insertintotarget_table(name,age)values('xinxian',25)");
  2. db.execDML("updatetarget_tablesetage=21wherename='xinxian'");

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

5.statement对象

代码:

[cpp] view plain copy print ?
  1. CppSQLite3Statementsmt=db.compileStatement("insertintotarget_table(name,age)values(?,?)");
  2. for(inti=0;i<10;++i)
  3. {
  4. smt.bind(1,"test_");
  5. smt.bind(2,i);
  6. smt.execDML();
  7. }
  8. smt.finalize();

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

6.异常处理

代码:

[cpp] view plain copy print ?
  1. try
  2. {
  3. code……
  4. }
  5. catch(CppSQLite3Exception&e)
  6. {
  7. }

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

7.总结

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

转载地址:http://www.52php.cn/article/p-kvprnlwy-bq.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读