参考文献:https://blog.csdn.net/u012351051/category_8966045.html
sqlite 提供了SQL语句执行的函数sqlite3_exec,本文介绍的是sqlite3_stmt方式对数据库进行操作。
官方文档以及参考资料中给出的结论:如果只是单条命令,那么 使用sqlite3_exec和sqlite3_stmt效率是一样的,但是在涉及到批量操作时,推荐使用sqlite3_stmt机制。在嵌入式软件的开发中执行效率是一个关键因素,因此更加推荐使用stmt方式对数据库进行操作。同时,stmt方式提供了更加细分的步骤,因此操作也更加灵活,在实际的开发过程中数据的方式也会更加多样,更加便利。
- 操作步骤:
- 数据库打开
sqlite3 * db_stmt_open(char *dbName)
{
sqlite3 *db = NULL;
int ret =0;
ret = sqlite3_open_v2(dbName,&db,SQLITE_OPEN_READWRITE | SQLITE_OPEN_FULLMUTEX ,NULL);
if(ret !=SQLITE_OK)
{
printf("db_stmt_open error!\n");
return NULL;
}
printf("db_stmt_open successful!\n");
return db;
}
- 指令准备
slqite3_prepare可以实现对sql语句(模板)的解析和编译,生成了可以被执行的 sql语句实例。
SQLITE_API int sqlite3_prepare_v2(
sqlite3 *db, /* Database handle */
const char *zSql, /* SQL statement, UTF-8 encoded */
int nByte, /* Maximum length of zSql in bytes. */
sqlite3_stmt **ppStmt, /* OUT: Statement handle */
const char **pzTail /* OUT: Pointer to unused portion of zSql */
);
int db_stmt