1 #import
"ViewController.h"
2
3 #import
"FMDBMigrationManager.h"
4 #import
"FMDB.h"
5
6 #define PATH_OF_DOCUMENT [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
7 #define CREATE_TEACHER_TAB @"CREATE TABLE IF NOT EXISTS %@(content text,time text)"
8 //插入基础元素
9 #define INSERT_SQL @"insert into %@(content, time) values(?,?)"
10
11 @interface ViewController () {
12
13 FMDatabaseQueue *
dbQueue;
14 }
15
16 @end
17
18 @implementation ViewController
19
20 - (
void)viewDidLoad {
21 [super viewDidLoad];
22 // Do any additional setup after loading the view, typically from a nib.
23
24 NSString * doc =
PATH_OF_DOCUMENT;
25 NSString * path = [doc stringByAppendingPathComponent:
@"teacherCache.sqlite"];
26
27 if (!
dbQueue) {
28
29 dbQueue =
[FMDatabaseQueue databaseQueueWithPath:path];
30 }
31
32 [self createTable:
@"user"];
33 }
34
35 - (NSString *
)databaseFilePath {
36
37 NSString * doc =
PATH_OF_DOCUMENT;
38 NSString * path = [doc stringByAppendingPathComponent:
@"teacherCache.sqlite"];
39 return path;
40 }
41
42 - (
void)didReceiveMemoryWarning {
43 [super didReceiveMemoryWarning];
44 // Dispose of any resources that can be recreated.
45 }
46
47 - (BOOL)isTableExist:(NSString *
)tableName {
48
49 FMDatabase *db =
[FMDatabase databaseWithPath:[self databaseFilePath]];
50 if ([db open]) {
51
52 FMResultSet *rs = [db executeQuery:
@"select count(*) as 'count' from sqlite_master where type ='table' and name = ?", tableName];
53 while ([rs next]) {
54
55 // just print out what we've got in a number of formats.
56 NSInteger count = [rs intForColumn:
@"count"];
57
58 [db close];
59
60 if (count <=
0) {
61
62 return NO;
63 }
else {
64
65 return YES;
66 }
67 }
68 [db close];
69 }
else {
70
71 NSLog(
@"error when open db");
72 }
73
74 return NO;
75 }
76
77 - (
void)createTable:(NSString*
)table {
78
79 if ([self isTableExist:table]) {
80
81 NSLog(
@"table exist already");
82
83 NSLog(
@"alter now");
84 FMDatabase *db =
[FMDatabase databaseWithPath:[self databaseFilePath]];
85 if ([db open]) {
86 if (![db columnExists:
@"noe" inTableWithName:table]) {
87
88 [self alterTable:table];
89 }
90
91 [db close];
92 }
93
94 return;
95 }
96 FMDatabase *db =
[FMDatabase databaseWithPath:[self databaseFilePath]];
97 if ([db open]) {
98
99 NSString *sSQL =
[NSString stringWithFormat:CREATE_TEACHER_TAB, table];
100 BOOL res =
[db executeUpdate:sSQL];
101 if (!
res) {
102
103 NSLog(
@"error when creating db table");
104 }
else {
105
106 NSLog(
@"succ to creating db table");
107
108 [self insertContentTable:table Content:
@"ssfdsf" Time:
@"2015-04-05"];
109 }
110 [db close];
111
112 }
else {
113
114 NSLog(
@"error when open db");
115 }
116 }
117
118 - (
void)insertContentTable:(NSString*)table Content:(NSString*)content Time:(NSString *
)time
119 {
120 [dbQueue inDatabase:^(FMDatabase *
db)
121 {
122 NSString *sql =
[NSString stringWithFormat:INSERT_SQL,table];
123
124 BOOL res =
[db executeUpdate:sql,content,time];
125 if (!
res)
126 {
127 NSLog(
@"error when insertContentTable");
128 }
129 else
130 {
131 NSLog(
@"succ to insertContentTable");
132 }
133 }];
134 }
135
136 - (
void)alterTable:(NSString*
)table {
137
138 [dbQueue inDatabase:^(FMDatabase *
db) {
139
140 NSString *sql = [NSString stringWithFormat:
@"ALTER TABLE %@ ADD %@ text",table,
@"noe"];
141
142 BOOL res =
[db executeUpdate:sql];
143 if (!
res)
144 {
145 NSLog(
@"error when alterTable");
146 }
147 else
148 {
149 NSLog(
@"succ to alterTable");
150 }
151 }];
152 }
转载于:https://www.cnblogs.com/wly314/p/4995142.html
相关资源:JAVA上百实例源码以及开源项目