# STDbObject **Repository Path**: tom/STDbObject ## Basic Information - **Project Name**: STDbObject - **Description**: objective-c的数据库封装方法,实体类直接映射到数据库,对数据库的操作极其简单实用,对数据库的CRUD操作无需写任何SQL语句,项目框架已打包,请到附件中下载使用。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 46 - **Created**: 2014-04-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
对于小型数据很方便, 声明一个继承于STDbObject的类对象user,
写入到数据库直接执行方法 [user insertToDb];
从数据库读取,NSArray *users = [User dbObjectsWhere:@"_id=11" orderby:nil];
更新到数据库,[user updateToDb];
从数据库删除,[user removeFromDb];
*更新内容
1.0.3版本支持复杂类型 NSData, NSDate, NSArray, NSDictionary
1.0.4添加dbObject过期属性,当数据过期,数据会被自动删除,可用于有时间限制的历史纪录等场景
添加了数据库加密功能(目前仅支持字符串加密)
一个STDbObject允许添加另一个STDbObject对象了(2014-01-02更新)
1.0.5支持一个STDbObject对象包含另一个STDbObject对象了(2014-01-04更新)
2.0 更新内容(2014-01-06更新)
support array contain objects of STDbObject class
support dictionary contain an STDbObject object
remove the sub STDbObject after remove the parent object
2.0.2 更新内容(2014-02-18更新)
1. add objc to dictionary method
2. add dictionary to objc method
方法一:导入源码
方法二:制作STDbKit.framework并引入,可从附件中下载
支持模拟器和真机STDbKit.framework制作方法:
1. 分别在device和模拟器下运行
2. 右击 STDbKit.framework, 选择Show In Finder, 找到上级目录,本项目是release版本,
这里显示Release-iphoneos,Release-iphonesimulator
3. 把Release-iphoneos,Release-iphonesimulator文件夹拷贝到桌面
4. 在终端运行lipo -create ~/Desktop/Release-iphoneos/STDbKit.framework/STDbKit \
~/Desktop/Release-iphonesimulator/STDbKit.framework/STDbKit \
-output ~/Desktop/STDbKit
5. 在桌面文件夹Release-iphoneos上, 拷贝 STDbKit.framework到桌面,把桌面上 STDbKit
文件覆盖到STDbKit.framework, 制作完成
6. 在项目中引用STDbKit.framework框架,支持模拟器和真机了
* 引入依赖库sqlite3.dylib
* 创建需要保存的数据类,该类需继承类STDbObject
1) 声明一个类,这里新建类User
#import <STDbKit/STDbObject.h>
@interface User : STDbObject
@property (strong, nonatomic) NSString *name;
@property (assign, nonatomic) NSInteger age;
@property (strong, nonatomic) NSNumber *sex;
@property (assign, nonatomic) NSTimeInterval time;
@property (assign, nonatomic) int _id;
@end
2) 插入到数据库
// 初始化
User *user = [[User alloc] init];
user.name = @"admin";
user.age = 20;
user.sex = @1;
user._id = 0;
// 插入到数据库
[user insertToDb];
3) 查询
// 取出所有用户
NSArray *users = [User allDbObjects];
// 按条件取出数据
NSArray *users = [User dbObjectsWhere:@"_id=11" orderby:nil];
4) 修改
// 首先从数据库中取出要修改的对象
NSArray *users = [User dbObjectsWhere:@"_id=11" orderby:nil];
if ([users count] > 0) {
User *user = users[0];
user.name = @"学长";
// 更新到数据库
[user updateToDb];
}
5) 删除
// 要删除的数据
User *user = _users[row];
// 从数据库中删除数据
[user removeFromDb];
// 批量删除
[User removeDbObjectsWhere:@"_id=%d", 4];
注意:一旦修改了数据类,请删除原来的应用重新运行.