.分别导入头文件和libsqlite3.dylib框架
1
|
#import <sqlite3.h>
|
2.创建数据库句柄
1
|
sqlite3 *db;
|
3.用创建的句柄创建或打开数据库
1
2
3
4
5
6
7
|
//打开数据库
if
(sqlite3_open([daPath UTF8String], &db) != SQLITE_OK) {
sqlite3_close(db);
NSLog(@
"打开错误"
);
}
else
{
NSLog(@
"ok"
);
}
|
4.数据表操作方法
1
2
3
4
5
6
7
8
9
|
- (
void
)execSql:(NSString *)sql{
char
*err = nil;
if
(sqlite3_exec(db, [sql UTF8String], nil, nil, &err) != SQLITE_OK) {
sqlite3_close(db);
NSLog(@
"%@ err:%s"
, sql, err);
}
else
{
NSLog(@
"%@ ok"
, sql);
}
}
|
5.创建数据表
1
2
3
4
|
-(
void
)createOrOpenTable{
NSString *sqlCreateTable = @
"CREATE TABLE IF NOT EXISTS Students (ID INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(20), age INTEGER, school varchar(40))"
;
[self execSql:sqlCreateTable];
}
|
6.在数据表中插入新数据
1
2
3
4
5
6
|
- (
void
)insertAValueWithName:(NSString *)aName andAge:(NSInteger)anAge andSchool:(NSString *)aSchool{
NSString *sql1 = [NSString stringWithFormat:
@
"INSERT INTO Students (name, age, school) VALUES ('%@', '%d', '%@')"
, aName, anAge, aSchool];
[self execSql:sql1];
}
|
7.获取数据表中的数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
- (NSMutableArray *)getPersons{
NSString *sqlQuery = @
"select * from Students"
;
sqlite3_stmt *statement;
NSMutableArray *personArray = [NSMutableArray array];
if
(sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
while
(sqlite3_step(statement) == SQLITE_ROW) {
char
*name = (
char
*)sqlite3_column_text(statement, 1);
NSString *nameString = [NSString stringWithUTF8String:name];
int
age = sqlite3_column_int(statement, 2);
char
*school = (
char
*)sqlite3_column_text(statement, 3);
NSString *schoolString = [NSString stringWithUTF8String:school];
Person *per = [[Person alloc] initWithName:nameString andAge:age andSchool:schoolString];
[personArray addObject:per];
}
}
else
{
NSLog(@
"打开失败"
);
}
return
personArray;
|