1.步骤是:
先加入sqlite开发库libsqlite3.dylib,
新建或打开数据库,
创建数据表,
插入数据,
查询数据并打印
2、sqlite 的方法
sqlite3 *db, 数据库句柄,跟文件句柄FILE很类似
sqlite3_stmt *stmt, 这个相当于ODBC的Command对象,用于保存编译好的SQL语句
sqlite3_open(), 打开数据库,没有数据库时创建。
sqlite3_exec(), 执行非查询的sql语句
Sqlite3_step(), 在调用sqlite3_prepare后,使用这个函数在记录集中移动。
Sqlite3_close(), 关闭数据库文件
还有一系列的函数,用于从记录集字段中获取数据,如
sqlite3_column_text(), 取text类型的数据。
sqlite3_column_blob(),取blob类型的数据
sqlite3_column_int(), 取int类型的数据
3.数据库表的操作:create及update/insert/delete/select
//创建数据库表(Create Table)
+ (BOOL)createTable {
//判断数据库是否打开
if ([shareDataBase open]) {
//如果表 inner_ac_info不存在,就创建,包含字段列名_id(数据类型为integer,主键,自动递增),ac_name(数据类型为varchar),iu_no(数据类型为varchar),ou_no(数据类型为varchar), gw_ip(数据类型为varchar).
NSString *sql = @"CREATE TABLE IF NOT EXISTS inner_ac_info (_id integer primary key autoincrement, ac_name varchar, iu_no varchar, ou_no varchar, gw_ip varchar)";
[shareDataBase executeUpdate:sql];
NSString *sql1 = @"CREATE TABLE IF NOT EXISTS ac_mode_info (_id integer primary key autoincrement, ac_mode_name varchar, on_off integer, speed integer, work_mode integer, temp integer)";
[shareDataBase executeUpdate:sql1];
NSString *sql2 = @"CREATE TABLE IF NOT EXISTS ac_mode_inner_ac (_id integer primary key autoincrement, ac_mode_id long, ac_id long)";
[shareDataBase executeUpdate:sql2];
// [shareDataBase close];
}
SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增.
关键字 AUTOINCREMENT 只能用于整型(INTEGER)字段。
/**
//查询数据库表
+ (NSArray *)getAcList{
NSMutableArray *acarray = [[NSMutableArray alloc] init];
[self init];
if ([shareDataBase open]) {
//查询数据库表下面一句
FMResultSet *s = [shareDataBase executeQuery:[NSString stringWithFormat:@"SELECT * FROM inner_ac_info"]];
//相当于 NSString *string = [NSString stringWithFormat:@"SELECT * FROM inner_ac_info"]
//+ FMResultSet *s = [shareDataBase executeQuery:string];
while ([s next]) {
Airconditioner *ac = [[Airconditioner alloc] init];
ac.acId = [NSNumber numberWithInt:[s intForColumn:@"_id"]];
ac.rmname = [s stringForColumn:@"ac_name"];
ac.aciuNo = [s stringForColumn:@"iu_no"];
ac.acouNo = [s stringForColumn:@"ou_no"];
ac.gwIp = [s stringForColumn:@"gw_ip"];
[acarray addObject:ac];
}
//关闭数据库
[shareDataBase close];
}
return acarray;
}
//更新数据库表的修改(update)
+ (void)updateAc: (Airconditioner*) ac{
[self init];
NSLog(@"AcId =========%@",ac.acId);
if ([shareDataBase open]) {
//数据库表执行更新操作:修改id对应的nkname
[shareDataBase executeUpdate:
@"UPDATE inner_ac_info set ac_name = ? where _id = ?",ac.nkname, ac.acId];
[shareDataBase close];
}
}
//删除数据库表
//删除部分
+ (void)deleteAc:(NSString*)iuNo with:(NSString*) ouNo{
[self init];
if ([shareDataBase open]) {
[shareDataBase executeUpdate:
@"delete from inner_ac_info where iu_no = ? and ou_no = ?", iuNo, ouNo];
[shareDataBase close];
}
}
//删除全部
+ (void)deleteAllAc{
[self init];
if ([shareDataBase open]) {
[shareDataBase executeUpdate:
@"delete from inner_ac_info"];
[shareDataBase close];
}
}