iOS开发之用代码实现数据库FMDB的操作
1.简介
需求作用: 如果需要保存大量的结构较为复杂的数据时候, 使用数据库, 例如交规考试项目
常用的数据库:
(1)Microsoft SQL Server 2000/2008, 中小企业使用较多
(2)Oracle 比较复杂, 大企业使用较多
(3)Mysql数据库, 网站使用较多
(4)sqlite: 本地数据库, 访问数据足够快, 直接访问文件
足够简单, 功能相对其他数据库软件不是特别齐全, 足够用了
足够小, 系统不超过1M, 适合在移动端上使用
2.FMDB操作数据库
(1)配置
导入文件,
添加二进制库 libsqlite3.dylib,
包含头文件#import "FMDatabase.h"
3.数据库在项目中使用-单例设计模式
- (
void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//(1)创建数据库
[self creatAndInitDatabase];
//(2)创建数据表
[self createTable];
//(3)插入数据
[self insertdata];
//(4)查询数据
[self queryData];
//(5)修改和删除数据
//参考:插入数据
}
-(
void)queryData
{
//显示所有人的信息
NSString *sql =
@"select * from StudentInfo";
//FMResultSet 表示查询后结果集
FMResultSet *resultSet =
[_database executeQuery:sql];
//
while ([resultSet next]) {
NSLog(@"sid = %@,username = %@, password = %@,score = %@",[resultSet stringForColumn:
@"sid"],[resultSet stringForColumn:
@"username"],[resultSet stringForColumn:
@"password"],[resultSet stringForColumn:
@"score"]);
}
}
-(
void)insertdata
{
int sid =
1501;
NSString *username =
@"zhangsan";
NSString *password =
@"123";
NSString *score =
@"100";
NSString *sql =
@"insert into StudentInfo(sid,username,password,score)values(?,?,?,?)";
BOOL b = [_database executeUpdate:sql,[NSString stringWithFormat:
@"%d",sid],username,password,score];
NSLog(@"b = %d",b);
}
-(
void)createTable
{
NSString *sql=
@"create table if not exists StudentInfo(sid integer,username varchar(20),password varchar(20),score varchar(20))";
//executeQuery 用来执行select语句
BOOL b=
[_database executeUpdate:sql];
NSLog(@"b=%d",b);
}
-(
void)creatAndInitDatabase
{
//ios安全机制 - 沙盒
//(1). 每个应用内容都放在一个沙盒目录下面
//(2). 每个应用只能修改沙盒目录下得文件,其他应用文件无法修改
//(3). 默认文件夹 Documents,Library,tmp
//开发: 自己创建的文件放在Documents下面
//确定文件位置
//当前文件夹: NSHomeDirectory()
// NSLog(@"home = %@",NSHomeDirectory());
// NSLog(@"%@",[[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSHomeDirectory() error:nil]);
//设置路径
NSString *path = [NSString stringWithFormat:
@"%@/Documents/stuInfo.sqlite",NSHomeDirectory()];
//创建数据库(如果不存在则创建打开,如果存在则直接打开)
_database =
[[FMDatabase alloc] initWithPath:path];
if(!
[_database open])
{
NSLog(@"打开失败");
return;
}
NSLog(@"打开成功");
}
4.显示结果
转载于:https://www.cnblogs.com/SuperHanks/p/4390633.html
相关资源:各显卡算力对照表!