1. 程式人生 > >用C++簡單封裝了一下SQLite

用C++簡單封裝了一下SQLite

SQLite 強大,大家都知道,但是原生是C介面,用來其應用層稍微麻煩些。

今天做了個簡單的C++封裝,使用面向物件的方法來使用。

優點:面向物件的方式,減少應用層的複雜性;

缺點:暫對多執行緒環境支援不足。

使用樣例如下:

// 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) {
		std::cout << conn.getErrorMessage() << std::endl;
		return;
	}

	// 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;
		return;
	}

	// insert data
	cmd.setCommandText("insert into tbl_test(id, name, contact) values(0, 'gavin', '[email protected]')");
	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 all result
	while (cmd.fetchNext()) {
		std::cout << cmd.field(0).toInt() << ", " << cmd.field(1) << std::endl;
	}
}

可以使用記憶體資料庫、檔案資料庫等多種方式,這裡的例子比較簡單。


SQLite地址:http://sqlite.org/