iOS的SQLite编程
iOS的SQLite编程并没有使用OC面向对象的语法,而是使用了原生的C函数库。
为了在项目中使用iOS的SQLite编程API,需要先完成如下两步:
(1) 为项目增加lisqlite3.dylib。
(2) 在需要使用SQLiteAPI的OC类中使用如下代码导入libsqlite3.dylib:
#import<sqlite3.h>
SQLite数据库操作步骤如下:
(1) 调用sqlite3_open()函数打开与数据库的连接。
(2) 如果执行简单的DDL、DML语句,则直接调用sqlite3_exec()函数执行这些SQL语句即可。
(3) 如果预编译的SQL语句中包含了占位符参数,还需要调用sqlite3_prepare_v2()函数预编译SQL语句。
(4) 如果预编译的SQL语句中包含了占位符参数,还需要调用sqlite3_bind_xx()函数为占位符参数绑定参数值。
(5) 如果预编译Statement执行的SQL语句是DDL或DML,则调用sqlite3_step()函数执行SQL语句即可;如果预编译Statement执行的SQL语句是查询语句,则循坏调用sqlite3_step()函数一次取出每个数据行即可。
(6) 如果程序中使用预编译Statemen执行过SQL语句,则调用sqlite3_finalize()函数关闭sqlite3_stmt。
(7) 调用sqlite3_close()函数关闭数据库连接。
创建数据库和表
使用sqlit3_open()函数即可打开或创建数据库,代码如下:
Sqlite3* database;
Sqlite3_open([[selfdbPath]UTF8String], &database);
上面代码用于打开或者创建一个SQLite数据库。
接下来为创建数据库表:
Const char * createSQL = “create table if notexists word_inf\(_id integer primary key autoincrement, \word,\detail)”;
//执行表语句
Int result = sqlite3_exec(database, createSQL,NULL, NULL, &errMsg);
使用SQL语句执行查询
Sqlite3_exec()函数可执行无须返回值的SQL语句,一般用于执行DDL或DML语句;如果需要执行查询语句,一般会调用sqlite3_prepare_v2()预编译查询语句,然后循环调用sqlite3_step()函数取出查询结果集。
使用sqlite3工具
Mac OS X的lion版或更高版本的系统已经自带sqlite3工具,它是一个简单的SQLite数据库管理工具,类似于MySQL提供的命令行窗口。开发者可以利用该工具来查询、管理数据库。
Sqlite3中常用的命令如下:
(1) .datbases:查看当前数据库。
(2) .tables:查看当前数据库里的数据表。
(3) .help:查看sqlite3支持的命令。
需要指出的是,SQLite内部只支持NULL、INTEGER、REAL、TEXT和BLOB这5种类型,但实际上SQLite完全可以接收varchar(n)、char(n)、decimal(p,s)等数据类型,知不是SQLite会在运算或保存时将它们转换为上面5种数据类型中的相应类型。
除此之外,SQLite允许把各种类型的数据保存到任何类型字段中,开发者可以不用管理声明该字段所使用的数据类型。