static void reset_environment()
{
unlink("test.db");
[[SQLiteInstanceManager sharedManager] setDatabaseFilepath:@"test.db"];
}
並在main方法中調用,該方法用於指定sqlite數據庫文件。
4.對象
#import <foundation/foundation.h>
#import "SQLitePersistentObject.h"
@interface PersistablePerson : SQLitePersistentObject
@property (nonatomic,readwrite, retain) NSString * lastName;
@property (nonatomic,readwrite, retain) NSString * firstName;
@end
----------------------------------------------------------------------
在.m中重載+(NSArray *)indices方法建索引
+(NSArray *)indices
{
NSArray *index1 = [NSArray arrayWithObject:@"lastName"];
NSArray *index2 = [NSArray arrayWithObjects:@"lastName", @"firstName", nil];
NSArray *index3 = [NSArray arrayWithObjects:@"age", @"lastName", @"firstName", nil];
return [NSArray arrayWithObjects:index1, index2, index3, nil];
}
-----------------------insert-----------------------------------------
PersistablePerson *person = [[PersistablePerson alloc] init];
person.firstName = @"Joe";
person.lastName = @"Smith";
[person save];
-----------------------select with no condition------------------
NSArray *people = [PersistablePerson allObjects];
-----------------------findByPropertyName-----------------------
NSArray *people = [PersistablePerson findByLastName:@"Smith"]
-----------------------select one record-----------------------
PeristablePerson *joeSmith = [PersistablePerson findFirstByCriteria:@"WHERE last_name = 'Smith' AND first_name = 'Joe'"];
-----------------------select records by condition----------------------
NSArray *people = [PersistablePerson findByCriteria:@"WHERE ......."];
--------------------------清空表數據緩存--------------------------------
[PersistablePerson clearCache];
5.心得:
一個對象對應一張表,對象名PeristablePerson對應表名persistable_person,屬性名lastName對應字段名last_name,即在大寫字母前加"_"並將大寫字母替換爲小寫。沒有大寫字母則不變。
屬性名不能加"_",如last_name,否則查詢時屬性值爲nil,即便數據庫中不爲null。