IOS_sqlite简单操作
[super viewDidLoad];
// 创建数据库
// 先获取document路径
///Users/pj/Library/Application Support/iPhone Simulator/7.1/Applications/422EC333-2CE1-45E8-8142-24CBF6823A3D/Documents
NSString *docDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
// /Users/pj/Library/Application Support/iPhone Simulator/7.1/Applications/422EC333-2CE1-45E8-8142-24CBF6823A3D/Documents/mydb.db
NSString *dbName = [docDir stringByAppendingPathComponent:@"mydb.db"];
sqlite3 *_db;
if (SQLITE_OK == sqlite3_open(dbName.UTF8String, &_db)) {
NSLog(@"打开或者创建数据库成功");
}else
{
NSLog(@"创建或者打开数据失败");
}
NSLog(@"%@",dbName);
// 创建数据库表
NSString *sql = @"CREATE TABLE IF NOT EXISTS t_person (id integer PRIMARY KEY AUTOINCREMENT,name text,age integer,phoneNo text)";
char *errmsg;
if (SQLITE_OK == sqlite3_exec(_db, sql.UTF8String, NULL, NULL, &errmsg)) {
NSLog(@"成功");
}else
{
NSLog(@"失败%s",errmsg);
}
// 添加记录
sql = @"INSERT INTO t_person (name, age, phoneNo) VALUES ('张三', 99, '139283833')";
if (SQLITE_OK == sqlite3_exec(_db, sql.UTF8String, NULL, NULL, &errmsg)) {
NSLog(@"插入成功");
}else
{
NSLog(@"插入失败%s",errmsg);
}
// 查询结果
// 1. 评估准备SQL语法是否正确
sql = @"SELECT id, name, age, phoneNo FROM t_person";
sqlite3_stmt *stmt = NULL;
NSMutableArray *persons = nil;
if (SQLITE_OK == sqlite3_prepare_v2(_db, sql.UTF8String, -1, &stmt, NULL)) {
// 2. 如果能够正常查询,调用单步执行方法,依次取得查询结果
// 如果得到一行记录
persons = [NSMutableArray array];
while (SQLITE_ROW == sqlite3_step(stmt)) {
// 3. 获取/显示查询结果
// sqlite3_column_xxx方法的第二个参数与sql语句中的字段顺寻一一对应(从0开始)
const unsigned char *name = sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
const unsigned char *phoneNo = sqlite3_column_text(stmt, 3);
NSString *phoneNoUTF8 = [NSString stringWithUTF8String:(const char *)phoneNo];
NSLog(@"%@",phoneNoUTF8);
}
} else {
NSLog(@"SQL语法错误");
}
// 4. 释放句柄
sqlite3_finalize(stmt);

浙公网安备 33010602011771号