前一陣字做項目(嵌入式Linux),由於要保存大量的數據,而且最長要保存30天的時間。本來打算保存到文件中,每次啟動應用程序的時候重新解析一遍,可是當數據量很大的時候,就出現效率的問題了。所以最後還是放棄了使用文件的打算,決定使用數據庫存取數據。
Linux下的數據庫也很多,有開源的,也有收費的。對於我們來說,肯定要使用開源的數據庫。以前用過Berkely DB,但是需要licIEnce。所以結合效率性能以及大小限制,最終選定了Sqlite DB。我們對它的評價是“sqlite是一個優秀的完全free的開源數據項目”。
下面是一個簡單的使用實例:
int main( int argc, char **argv )
{
sqlite3 *db;
sqlite3_stmt * stmt;
const char *zTail;
//打開數據庫
int r = sqlite3_open("MySQLite.db",&db)
if(r){
printf("%s",sqlite3_errmsg(db));
}
//創建Table
sqlite3_prepare(db,
"CREATE TABLE players ( ID INTEGER PRIMARY KEY, name TEXT, age INTERER );",
-1,&stmt,&zTail);
sqlite3_step(stmt);
sqlite3_finalize(stmt);
//插入數據
sqlite3_prepare(db,
"INSERT INTO players (name,num) VALUES(?,?);",
-1,&stmt,&zTail);
char str[] = "Kevin";
int n = 23;
sqlite3_bind_text(stmt,1,str,-1,SQLITE_STATIC);
sqlite3_bind_int(stmt,2,n);
r = sqlite3_step(stmt);
if( r!=SQLITE_DONE){
printf("%s",sqlite3_errmsg(db));
}
sqlite3_reset(stmt);
//插入第二個數據
char str2[]