SQLite应用之路

前端之家收集整理的这篇文章主要介绍了SQLite应用之路前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_404_2@Cppsqlite@H_404_2@sqlite@H_404_2@的API进行了一次封装,让开发人员更加方便的使用sqlite。

@H_404_2@

1.准备一下

(1@H_404_2@)Cppsqlite3.h 和Cppsqlite3.cpp

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

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

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

@H_404_2@

2.打开数据库

代码

  1. Cppsqlite3DBdb;@H_404_2@@H_404_2@
  2. db.open(@H_404_2@"data.db"@H_404_2@);@H_404_2@
  3. db.close();@H_404_2@

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

@H_404_2@

3.查询

代码:@H_404_2@

@H_404_2@

  1. Cppsqlite3Queryquery=db.execQuery(@H_404_2@"select*fromtarget_table"@H_404_2@);@H_404_2@@H_404_2@
  2. @H_404_2@while@H_404_2@(!query.eof())@H_404_2@
  3. {@H_404_2@
  4. cout<<@H_404_2@"name:"@H_404_2@<<query.getStringField(@H_404_2@"name"@H_404_2@)<<@H_404_2@"age:"@H_404_2@<<query.getIntField(@H_404_2@"age"@H_404_2@)<<endl;@H_404_2@
  5. query.nextRow();@H_404_2@
  6. }@H_404_2@
  7. query.finalize();@H_404_2@


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

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

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

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

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

@H_404_2@

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

@H_404_2@

4.数据库更改操作

代码

  1. db.execDML(@H_404_2@"insertintotarget_table(name,age)values('xinxian',25)"@H_404_2@);@H_404_2@@H_404_2@
  2. db.execDML(@H_404_2@"updatetarget_tablesetage=21wherename='xinxian'"@H_404_2@);@H_404_2@

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

@H_404_2@

5.statement对象

代码:@H_404_2@

  1. Cppsqlite3Statementsmt=db.compileStatement(@H_404_2@"insertintotarget_table(name,age)values(?,?)"@H_404_2@);@H_404_2@@H_404_2@
  2. @H_404_2@for@H_404_2@(@H_404_2@int@H_404_2@i=0;i<10;++i)@H_404_2@
  3. {@H_404_2@
  4. @H_404_2@
  5. smt.bind(1,@H_404_2@"test_"@H_404_2@);@H_404_2@
  6. smt.bind(2,i);@H_404_2@
  7. smt.execDML();@H_404_2@
  8. }@H_404_2@
  9. smt.finalize();@H_404_2@

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

@H_404_2@

6.异常处理

代码:@H_404_2@

  1. try@H_404_2@@H_404_2@@H_404_2@
  2. {@H_404_2@
  3. code……@H_404_2@
  4. }@H_404_2@
  5. @H_404_2@catch@H_404_2@(Cppsqlite3Exception&e)@H_404_2@
  6. {@H_404_2@
  7. @H_404_2@
  8. }@H_404_2@

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

@H_404_2@

7.总结

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

转载地址:http://www.jb51.cc/article/p-kvprnlwy-bq.html

猜你在找的Sqlite相关文章