Objective-C语言操作数据库

数据库FMDB

使用FMDB第三方框架:
在Xcode工程中导入FMDB框架,然后添加系统依赖库libsqlite3.dylib

1.创建数据库

//定义数据库操作对象
FMDatabase *_database;

#pragma  mark - 数据库路径
- (NSString *)getDatabasePath
{
#if 0
	//获取Documents文件夹目录:方式一
	NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
#endif

	//获取Documents文件夹目录:方式二
	NSString *path = NSHomeDirectory();
	path = [path stringByAppendingPathComponent:@"Documents"];
	//获取数据库文件User.db的目录
	path = [path stringByAppendingPathComponent:@"User.db"];
	NSLog(@"path:%@", path);

	return path;
}

#pragma  mark - 创建数据库
- (void)createDatabase
{
	//创建数据库操作对象
	_database = [FMDatabase databaseWithPath:[self getDatabasePath]];

	//打开数据库,如果数据库不存在则先创建数据库文件再打开,否则直接打开
	BOOL ret = [_database open];
	if (ret) {
    	NSLog(@"打开成功!");
	}
	else {
   	 	NSLog(@"打开失败!");
	}
}

2.创建表
#pragma mark - 创建表
- (void)createTable
{
/*
User 表
(
Id integer primary key autoincrement,
name text,
age integer
)
*/

	NSString *sql = @"create table if not exists User(Id integer primary key autoincrement, name text, age integer)";

	//执行sql语句
	BOOL ret = [_database executeUpdate:sql];

	if (ret) {
    	NSLog(@"创建表成功!");
	}
	else {
    	NSLog(@"创建表失败!");
	}
}

3.插入数据,查询,更新,删除

3.1、 插入数据
//sql语句
NSString *sql = @"insert into User(name, age) values(?,?)";
BOOL ret = YES;
for (int i=0; i<10; i++) {
    
    NSString *name = [NSString stringWithFormat:@"user%d", i+1];
    NSNumber *age = [NSNumber numberWithInt:i+10];
    
    //执行sql语句
    //只能插入三种OC对象的数据: NSString, NSNumber, NSData
    ret &= [_database executeUpdate:sql, name, age];
}

if ( ret ) {
    NSLog(@"插入数据成功!");
}
else {
    NSLog(@"插入数据失败!");
}


3.2、 查询数据
//查询所有数据
NSString *sql = @"select * from User";

//执行查询,返回一个集合(无重复元素的数组)
FMResultSet *set = [_database executeQuery:sql];

//遍历集合
while ( [set next] ) {
    
    NSString *name = [set stringForColumn:@"name"];
    int age = [set intForColumn:@"age"];
    
    NSLog(@"name:%@, age:%d", name, age);
}


3.3、 更新数据
//sql语句
NSString *sql = @"update User set name=? where name=?";

//执行sql语句
BOOL ret = [_database executeUpdate:sql, newName, oldName];

if ( ret ) {
    NSLog(@"更新数据成功!");
}
else {
    NSLog(@"更新数据失败!");
}


3.4、 删除数据
NSString *sql = @"delete from User where name=?";

BOOL ret = [_database executeUpdate:sql, name];

if ( ret ) {
    NSLog(@"删除数据成功!");
}
else {
    NSLog(@"删除数据失败!");
}

4.关闭数据库
[_database close];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GOD FOR JAVA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值