- 首先要先导入第三方类库FMdatabase
- 获得存放数据库文件的沙盒地址
+(NSString*)databaseFilePath {
NSArray
*filePath =NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory
,NSUserDomainMask
YES
);
NSString*documentPath = [filePath
objectAtIndex:
0];
NSLog(
@"%@",filePath);
NSString*dbFilePath = [documentPath
stringByAppendingPathComponent:
@"db.sqlite"];
returndbFilePath;
}
- 创建数据库的操作
+(void)creatDatabase {
db
= [[
FMDatabasedatabaseWithPath
:[
selfdatabaseFilePath
]]
retain
];
}
- 创建表
+(void)creatTable {
//先判断数据库是否存在,如果不存在,创建数据库
if(!
db) {
[
selfcreatDatabase
];
}
//判断数据库是否已经打开,如果没有打开,提示失败
if(![
db
open]) {
NSLog
(@"
数据库打开失败"
); return
;
}
//为数据库设置缓存,提高查询效率
[
dbsetShouldCacheStatements
:
];
//判断数据库中是否已经存在这个表,如果不存在则创建该表
if
(![
dbtableExists
:
@"people"
]) {
[
db
executeUpdate
:@"CREATE TABLES people(people_id INTEGER PRIMARY KEY AUTOINCREAMENT,name TEXT,age INTEGER) "
];
(@"
创建完成"
);
}
}
- 增加表数据
+(void)insertPeople:(People*)aPeople {
];
}
;
}
];
selfcreatTable
];
}
//以上操作与创建表是做的判断逻辑相同
//现在表中查询有没有相同的元素,如果有,做修改操作
FMResultSet
*rs = [
db
executeQuery
:@"select * from people where people_id = ?"
NSString
stringWithFormat
:@"%d"
peopleID
]];
if([rs
next])
{
(@"dddddslsdkien"
);
:@"update people set name = ?,age = ? where people_id = 1"
name
NSString
stringWithFormat
:@"%d"
age
]];
}
//向数据库中插入一条数据
else
{
:@"INSERT INTO people (name,age) VALUES (?,?)"
]];
}
}
- 删除数据
+(void)deletePeopleByID:(int)ID {
];
//判断表中是否有指定的数据, 如果没有则无删除的必要,直接return
]) {
return
;
}
//删除操作
executeUpdate
:@"delete from people where people_id = ?"
close];
}
- 修改操作与增加操作的步骤一致
- 查询
+(NSArray*)getAllPeople {
); return nil
]) {
return nil
;
}
//定义一个可变数组,用来存放查询的结果,返回给调用者
NSMutableArray
*peopleArray = [[NSMutableArray
alloc
]
initWithArray
:
0
];
//定义一个结果集,存放查询的数据
:@"select * from people"
//判断结果集中是否有数据,如果有则取出数据
while([rs
next]) {
People*aPeople = [[
People
alloc]
init];
aPeople.
peopleID= [rs
intForColumn:
@"people_id"];
aPeople.
name= [rs
stringForColumn:
@"name"];
aPeople.
age= [rs
@"age"];
//将查询到的数据放入数组中。
[peopleArray
addObject:aPeople];
}
return[peopleArray
autorelease];
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|