SQLitePP 的使用(一)

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

什么是sqlitePP ?

sqlitePP 是一个C++封装的 sqlite组件,开源、免费。目的是使用面向对象的方式来简化sqlite的使用,具有面向对象的访问方式。开源工程:http://sourceforge.net/projects/sqlite4pp/ 欢迎各位开发人加入!

如何使用?

1. 从这里下载最新的版本,http://sourceforge.net/projects/sqlite4pp/files,目前仅有基于MSVC2010的版本,欢迎各位开发者加入,开发其他平台和版本。

2. 将 include 中的头文件 sqlitepp.h 加入到你的工程, lib中的 sqlitepp.lib 连接进去就好。

#include "sqlitepp.h"

3. 将 lib 下的 sqlitepp.dll 放入到运行目录即可。


如何创建连接?

如下代码所示,定义一个 连接DBConnection 对象, 然后调用 connect 方法,指定数据库地址即可。
	//define a connection
	sqlitePP::DBConnection conn;

	// connect to a database
	int rc = conn.connect("D:\\mytestdb.db");
	if (rc != 0 || !conn.isConnected()) {
		std::cout << conn.getErrorMessage() << std::endl;
	}
	else
	{
		std::cout << "we connected to the sqlite now!" << std::endl;
	}

如何执行DML语句?

如下代码所示,创建数据库tbl_test。

	// define a command and set a command text
	sqlitePP::DBCommand cmd(&conn);
	cmd.setCommandText("create table tbl_test(id integer not null,name text,contact text)");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
	}
	else
	{
		std::cout << "The table [tbl_test] has been created!" << std::endl;
	}

注:所有的 DBCommand 对象都需要绑定到 DBConnection 上。


如何执行sql语句进行插入数据?

如下代码,插入数据到刚才建立的表中。
	// insert data
	cmd.setCommandText("insert into tbl_test(id,name,contact) values(0,'gavin','vxling@gmail.com')");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}


如何查询结果?

如下代码片段所示,执行一个查询语句,查询到结果,然后将 列名打印出来, 然后将所有数据打印。

	// execute a query
	cmd.setCommandText("select * from tbl_test");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}

	// print field name
	for (int i =0; i < cmd.fieldCount(); ++i)
	{
		std::cout <<cmd.getFieldName(i) << "\t";
	}

	std::cout << std::endl;

	// print all result
	while (cmd.fetchNext()) {
		std::cout << cmd.field(0) << "\t" << cmd.field(1) << std::endl;
	}

好了,到此为止,可以创建一个简单的文件数据库,然后进行写入、读取操作。附上所有代码
#include "sqlitepp.h"
#include <iostream>

void simple_example();

int main(int argc,char **argv)
{
	simple_example();	
	return 0;
}


// a simple example to use sqlitePP
void simple_example()
{
	//define a connection
	sqlitePP::DBConnection conn;

	// connect to a database
	int rc = conn.connect("D:\\mytestdb.db");
	if (rc != 0 || !conn.isConnected()) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}
	else
	{
		std::cout << "we connected to the sqlite now!" << std::endl;
	}

	// define a command and set a command text
	sqlitePP::DBCommand cmd(&conn);
	cmd.setCommandText("create table tbl_test(id integer not null,contact text)");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}
	else
	{
		std::cout << "The table [tbl_test] has been created!" << std::endl;
	}

	// insert data
	cmd.setCommandText("insert into tbl_test(id,'vxling@gmail.com')");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}

	// execute a query
	cmd.setCommandText("select * from tbl_test");
	rc = cmd.execute(); // execute
	if (rc != 0) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}

	// print field name
	for (int i =0; i < cmd.fieldCount(); ++i)
	{
		std::cout <<cmd.getFieldName(i) << "\t";
	}

	std::cout << std::endl;

	// print all result
	while (cmd.fetchNext()) {
		std::cout << cmd.field(0) << "\t" << cmd.field(1) << std::endl;
	}
}
下次介绍如何进行更高级的操作, 如 内存数据库、指定优化参数等等。 原文链接:https://www.f2er.com/sqlite/201953.html

猜你在找的Sqlite相关文章