Sqlite China  
首页 | 各种语言的sqlite编程 |sqlite研究 | sqlite应用实例与杂谈 | sqlite相关下载 | SQlite论坛
当前位置 : 主页>各种语言的sqlite编程>列表
SQLite调用C++封装类使用介绍(1)
来源:工友 作者:工友 时间:2007-12-21

如果你已经习惯了面向对象编写代码,那么对Sqlite提供的C接口可能让你使用起来比较费劲。所以你需要对sqliteC接口进行封装,用面向对象的方法使用sqlite。以下介绍一个对sqliteC++封装。

先来看看封装之后的使用方法吧:

 

Void main(void) {

    try {

    /*

打开一个数据库连接,只需创建一个sqlite3_connection对象指定要连接的数

据库,如果数据不存在创建这个数据库。

*/

  sqlite3_connection con("test.db");

/*

执行一条sql语句,查询当前系统是否存在表名为’t_test’的表

直接调用sqlite3_connection的方法可以执行语句,并根据语句类型返回不同类型的值,当然需要调用不同的方法,比如返回一个string型的值可以调用con.executestring()方法。

*/

       int count=con.executeint("select count(*) from sqlite_master where name='t_test';");//

       if(count==0)

{

/*

    创建数据表:t_test,包含两个字段。

*/

con.executenonquery("create table t_test(number,string);");

}

//为了测试使用和不使用事务的时候效率的区别

       time_t begin,end;

       begin = time(NULL);

        /*

           使用事务执行语句

*/

       sqlite3_transaction trans(con);

       {

            /*

              创建sqlite3_command对象来执行语句,对于需要给定参数的地方,可以在语句上写“?”,在用bind()方法来给定参数的实际值。

*/

           sqlite3_command cmd(con, "insert into t_test values(?,?);");

           cmd.bind(2, "foobar", 6);

           for(int i=0; i<1000000; i++) {

              cmd.bind(1, (int)i);

              cmd.executenonquery();

           }

       }

       trans.commit();

       end = time(NULL);

       con.close();

       cout<<"execute time"<<

    }

    catch(exception &ex) {

/*

    捕捉异常,输出异常信息

*/

       cerr << "Exception Occured: " << ex.what() << endl;

    }

}

这样使用起来很方便,相比以前纯C接口中的回调函数,这个使用方式更加符合面向对象的思想。而且加上了异常捕捉的信息之后可以很方便的对程序中出现的问题进行判断。比如一个sql语句写错了,或者是数据库读写冲突都可以在exception信息中给出。调试起来也是相当容易的。

SQLite原来自带的回调函数方法比较的复杂,而且并没有什么实质性的好处,使用起来不太方便,数据在调用函数与回调函数之间的传递也比较麻烦。而且对面向对象的思想也是一种破坏,因此推荐使用此封装类。

使用封装类对于SQLite的另外一个主要的问题也比较容易解决-----数据库的锁定问题。关于这个问题我们将在下一篇文章中介绍。

/upimg/soft/1_071221130627.rar

(阅读次数:
上一篇:Zend 官方SQLite介绍文档 下一篇:SQLite函数使用教程(1)
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§最新评论
热点文章
·简单的在Java中使用SQLite
·C/C++中调用SQLITE3的基本
·PHP+SQLITE制作简单的视频
·DISQLite3 简介 SQLite de
·VB.NET 中使用 SQLite3 的
·SQLiteJDBC 100%纯JAVA的s
·如何在Windows下编译SQLit
·关于SQLite的一些简单介绍
·在VC6.0中使用C++访问sqli
·C/C++中调用SQLITE3的基本
·SQLite 与 PHP 结合开发(
·在VC6.0中使用C++访问sqli
·使用SQLite进行网站搜索
·SQLite ADO.NET 驱动(C#
·在.NET C#中使用sqlite
·python模块之sqlite数据库
·PHP中的SQlite数据库应用
·如何在PHP5中通过PDO连接S
·PHP中如何使用sqlite_crea
·SQLite 、 PHP混合扩展编
相关文章
·让你的PHP4也用上Sqlite3
·VB.NET 中使用 SQLite3 的
·C/C++中调用SQLITE3的基本
·python模块之sqlite数据库
·在.NET C#中使用sqlite
·用Ruby进行SQLite的开发指
·PHP5中的 sqlite_create_f
·SQLite ADO.NET 驱动(C#
·使用SQLite进行网站搜索
·如何在Windows下编译SQLit

版权Power by DedeCms   后台登陆
Copyright @ 2007