+(FMDatabase *)sharedInstance{
if (!sharedInstance) {
NSArray *dirPaths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *databasePath = [NSString stringWithFormat:@"%@/tmp.db", dirPaths[0]];
sharedInstance = [FMDatabase databaseWithPath:databasePath];
[sharedInstance open];
}
return sharedInstance;
}
+(void)saveMailListData:(NSMutableArray *)stuData
{
FMDatabase* database=[DBManager sharedInstance];
if ([database open])
{
NSString *sqlCreateTable = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ( '%@' TEXT, '%@' TEXT, '%@' TEXT,'%@' TEXT, '%@' TEXT, '%@' TEXT,'%@' TEXT, '%@' TEXT, '%@' TEXT,'%@' TEXT, '%@' TEXT, '%@' TEXT,'%@' TEXT, '%@' TEXT)",@"user",@"BLACKFLAG",@"TRUENAME",@"STUDENTID",@"CLASSNAME",@"IDENTITY",@"SMALLLOGO",@"STUNAME",@"STATUS",@"USERCLASSID",@"PHONESETTING",@"USERID",@"USERNAME",@"IDENTDESC",@"CLASSID"];
BOOL res = [database executeUpdate:sqlCreateTable];
for (int i = 0; i<stuData.count; i++) {
NSDictionary * stuDic = [stuData objectAtIndex:i];
NSMutableDictionary * stuMutableDic = [NSMutableDictionary dictionaryWithDictionary:stuDic];
NSString * studentId =[stuMutableDic objectForKey:@"STUDENTID"];
NSString * stuName = [stuMutableDic objectForKey:@"STUNAME"];
NSString * trueName = [stuMutableDic objectForKey:@"TRUENAME"];
studentId = [[trubkString shareInstance]trunk:studentId];
stuName = [[trubkString shareInstance]trunk:stuName];
trueName = [[trubkString shareInstance]trunk:trueName];
[stuMutableDic setObject:stuName forKey:@"STUNAME"];
[stuMutableDic setObject:studentId forKey:@"STUDENTID"];
[stuMutableDic setObject:trueName forKey:@"TRUENAME"];
stuDic = stuMutableDic;
NSString * sql = [NSString stringWithFormat:
@"SELECT * FROM %@ ",@"user"];
FMResultSet * rs = [database executeQuery:sql];
NSMutableArray * mutabrs = [NSMutableArray array];
while ([rs next]) {
[mutabrs addObject:[rs stringForColumn:@"USERID"]];
}
if ([mutabrs containsObject:[NSString stringWithFormat:@"%@",[stuDic objectForKey:@"USERID"]]])
{
}
else
{
NSString *insertSql1= [NSString stringWithFormat:
@"INSERT INTO '%@' ('%@', '%@', '%@','%@', '%@', '%@','%@', '%@', '%@','%@', '%@', '%@','%@', '%@') VALUES ('%@', '%@', '%@','%@', '%@', '%@','%@', '%@', '%@','%@', '%@', '%@','%@', '%@')",
@"user",@"BLACKFLAG",@"TRUENAME",@"STUDENTID",@"CLASSNAME",@"IDENTITY",@"SMALLLOGO",@"STUNAME",@"STATUS",@"USERCLASSID",@"PHONESETTING",@"USERID",@"USERNAME",@"IDENTDESC",@"CLASSID",[stuDic objectForKey:@"BLACKFLAG"],[stuDic objectForKey:@"TRUENAME"],[stuDic objectForKey:@"STUDENTID"],[stuDic objectForKey:@"CLASSNAME"],[stuDic objectForKey:@"IDENTITY"],[stuDic objectForKey:@"SMALLLOGO"],[stuDic objectForKey:@"STUNAME"],[stuDic objectForKey:@"STATUS"],[stuDic objectForKey:@"USERCLASSID"],[stuDic objectForKey:@"PHONESETTING"],[stuDic objectForKey:@"USERID"],[stuDic objectForKey:@"USERNAME"],[stuDic objectForKey:@"IDENTDESC"],[stuDic objectForKey:@"CLASSID"]];
BOOL res1 = [database executeUpdate:insertSql1];
if (!res1) {
NSLog(@"error when insert db table");
} else {
NSLog(@"success to insert db table");
}
}
}
}
[database close];
}
+(NSDictionary *)getMailListData:(NSString *)userId
{
FMDatabase* database=[DBManager sharedInstance];
if ([database open]) {
NSString * sql = [NSString stringWithFormat:
@"SELECT * FROM %@ WHERE USERID = %@ ",@"user",userId];
FMResultSet * rs = [database executeQuery:sql];
NSMutableDictionary * mailMutableDic = [[NSMutableDictionary alloc]init];
while ([rs next]) {
[mailMutableDic setObject: [rs stringForColumn:@"SMALLLOGO"] forKey:@"SMALLLOGO"];
[mailMutableDic setObject: [rs stringForColumn:@"BLACKFLAG"] forKey:@"BLACKFLAG"];
[mailMutableDic setObject: [rs stringForColumn:@"TRUENAME"] forKey:@"TRUENAME"];
[mailMutableDic setObject: [rs stringForColumn:@"STUDENTID"] forKey:@"STUDENTID"];
[mailMutableDic setObject: [rs stringForColumn:@"CLASSNAME"] forKey:@"CLASSNAME"];
[mailMutableDic setObject: [rs stringForColumn:@"IDENTITY"] forKey:@"IDENTITY"];
[mailMutableDic setObject: [rs stringForColumn:@"STUNAME"] forKey:@"STUNAME"];
[mailMutableDic setObject: [rs stringForColumn:@"STATUS"] forKey:@"STATUS"];
[mailMutableDic setObject: [rs stringForColumn:@"USERCLASSID"] forKey:@"USERCLASSID"];
[mailMutableDic setObject: [rs stringForColumn:@"PHONESETTING"] forKey:@"PHONESETTING"];
[mailMutableDic setObject: [rs stringForColumn:@"USERID"] forKey:@"USERID"];
[mailMutableDic setObject: [rs stringForColumn:@"USERNAME"] forKey:@"USERNAME"];
[mailMutableDic setObject: [rs stringForColumn:@"IDENTDESC"] forKey:@"IDENTDESC"];
[mailMutableDic setObject: [rs stringForColumn:@"CLASSID"] forKey:@"CLASSID"];
}
[database close];
return mailMutableDic;
}
return nil;
}
FMDatabase* database=[DBManager sharedInstance];
if ([database open]) {
NSString * sql = [NSString stringWithFormat:
@"UPDATE %@ SET BLACKFLAG = %@ WHERE USERID = %@",@"user",@"2",otherID];
[database executeUpdate:sql];
}
[database close];
1.实例化FMDatabase
//paths: ios下Document路径,Document为ios中可读写的文件夹
NSArray *paths = NSSearchPathForDirectori
NSString *documentDirectory = [paths objectAtIndex:0];
//dbPath: 数据库路径,在Document中。
NSString *dbPath = [documentDirectory stringByAppendingPathCom
//创建数据库实例 db
FMDatabase *db= [FMDatabase databaseWithPath:dbPath] ;
if (![db open]) {
NSLog(@"Could not open db.");
return ;
}
2.创建表
//创建一个名为User的表,有两个字段分别为string类型的Name,integer类型的 Age
[db executeUpdate:@"CREATE TABLE User (Name text,Age integer)"];
3.插入
//插入数据使用OC中的类型 text对应为NSString integer对应为NSNumber的整形
[db executeUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",@"张三",[NSNumber numberWithInt:20]];
4.更新
//更新数据 将“张三”更改为“李四”
[db executeUpdate:@"UPDATE User SET Name = ? WHERE Name = ? ",@"李四",@"张三"];
5.删除
//删除数据
[db executeUpdate:@"DELETE FROM User WHERE Name = ?",@"张三"];
6.查询
//返回数据库中第一条满足条件的结果
NSString *aa=[db stringForQuery:@"SELECT Name FROM User WHERE Age = ?",@"20"];
//返回全部查询结果
FMResultSet *rs=[db executeQuery:@"SELECT * FROM User"];
rs=[db executeQuery:@"SELECT * FROM User WHERE Age = ?",@"20"];
while ([rs next]){
NSLog(@"%@ %@",[rs stringForColumn:@"Name"],[rs stringForColumn:@"Age"]);
}
[rs close];