写在前面:
简书地址:
移动端数据存储的主要特点:
1)数据存储在用户端,数据迁移困难(版本迭代,字段更新,数据表改变等)
2)一般的项目,数据库的使用以数据暂存为主,数据关系并不复杂,联表查询等功能使用并不是很多。
3)系统现有的sqlite3接口,不是面向对象操作,使用起来,还需要手动包装(不过也有大量的三方框架已经帮我们实现了ORM功能)
基于以上的特性,我们研发了移动端数据框架:GYDB
### 项目地址:
iOS版地址:https://github.com/fengzhongdeshu/GYDB
Android版本地址:https://github.com/fengzhongdeshu/AndGYDB
### 引用
iOS :pod
pod 'GYDB',
:git=>'https://github.com/fengzhongdeshu/GYDB.git'
Android:gradle
Add it in your root build.gradle at the end of
repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add the dependency
dependencies {
implementation
'com.github.fengzhongdeshu:AndGYDB:0.3.0'
}
GYDB的特点:
1:GYDB受最大的博客开源框架wordpress影响,数据存储采用高表形式存储,做到了真正的平滑数据迁移,无感知版本迭代。
2:GYDB提供 ios &
android两套框架,而且框架的api和设计完全一致,操作逻辑相同,节省开发时两端的沟通成本。
3. ios & android双端,功能及api同步更新。为项目开发管理也提供了便利。
4:GYDB纯面向对象操作,并不需要开发者掌握sql语句即可使用。
适用场景
任何以“万能”自居的事物都是耍流氓。
每个数据库杠架都有它适合的场景,所以在项目开发初期,我们都会有“技术选型”这一个环节。同样地,GYDB也有最适合它的使用场景
1)本框架属于ORM类型框架,存储和获取,都能以对象方式来操作。
2)可以忽略版本管理,所有要被添加的属性,只需要在要存储的对象中,添加一个属性即可,一切都是这么简单。
3)GYDB动态地扩展数据字段,数据表的特点,尤其对项目的数据变动情况,提供完整的兼容性。
4)追求android & ios端的代码统一,管理统一的项目。
## 使用简介
### 1.初始化配置:
在使用sdk前,我们需要对数据库做一些配置,如下:
iOS 可以在AppDelegate
中的application:didFinishLaunchingWithOptions:方法,或者在使用前,进行配置
[GYDBConfig shareInstance].dbName = @"gydb.db";
[GYDBConfig shareInstance].debug = YES
;
Android 可以在Application的子类的onCreate中,或者在使用本sdk前进行配置
GYDBBaseManager.get().init(this.getApplicationContext());
GYDBConfig.dbName="gydb.db";
GYDBConfig.debug =true ;
### 2.创建存储数据对象
iOS
```
@interface GYUser : NSObject
@property (nonatomic,assign) int _id ;
@property (nonatomic,copy) NSString *name;
@property (nonatomic,copy) NSString *hoppy;
@property (nonatomic,assign) int age ;
@property (nonatomic,assign) int score ;
@end
@implementation GYUser
@end
```
android
```
public class Userimplements Serializable{
private int _id ;
private Stringname ;
private Stringhoppy ;
private int age ;
private int score ;
public int get_id() {
return _id;
}
public void set_id(int _id) {
this._id = _id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHoppy() {
return hoppy;
}
public void setHoppy(String hoppy) {
this.hoppy = hoppy;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
```
### 3.创建数据表操作对象
iOS
```
GYDBOprator *oprator = [GYDBOprator opratorWithModel:[GYUser
class]] ;
```
Android:
```
GYDBOprator oprator=
GYDBOprator.getInstance().initModel(User.class);
```
### 4.对象存储
iOS
```
GYUser *user = [[GYUser alloc]init] ;
user._id =
self.idInuter.text.intValue ;
user.name =
self.nameInuter.text ;
user.hoppy =
self.hobbyInuter.text ;
user.age =
self.ageInuter.text.intValue;
user.score =
self.scoreInuter.text.intValue ;
BOOL bol =
[[[GYDBOprator opratorWithModel:[GYUser class]]addSaveModel:user]
save] ;
if(bol) {
[self.button setTitle:@"保存成功"
forState:UIControlStateNormal] ;
}else{
[self.button setTitle:@"保存失败"
forState:UIControlStateNormal] ;
}
```
Android
```
User u =new User() ;
u.set_id(Integer.valueOf(edit_id.getText().toString()));
u.setName(edit_name.getText().toString());
u.setHoppy(edit_hobbpy.getText().toString());
u.setAge(Integer.valueOf(edit_age.getText().toString()));
u.setScore(Integer.valueOf(edit_score.getText().toString()));
oprator.addSaveModel(u) ;
List list =oprator.save() ;
if (list.size()==0){
btn_add.setText("保存成功");
}else {
btn_add.setText("保存失败");
}
```
### 5.添加查询条件
iOS
```
[oprator whereColume:@"name" compare:@"=" value:@"张三"] ;
[oprator orWhereColume:@"score" compare:@">"
value:@"80"];
[oprator andWhereColume:@"age" compare:@"="
value:@"18"];
```
Android:
```
oprator.where("name" , "like" , "张") ;
oprator.orWhere("age","=","18") ;
oprator.andWhere("score",">","60") ;
```
### 6.基础API
iOS
```
-(NSArray*)query ;
-(BOOL)remove ;
-(BOOL)update ;
-(NSArray*)save ;
```
Android:
```
public List save()
public List query()
public boolean remove()
public boolean update()
```
好了,我们的介绍先写到这里,如果大家喜欢的话,可以在项目上留个star
再重复一遍项目地址,项目中包含简单示例,大家可以直接运行查看基本使用.
iOS版地址:https://github.com/fengzhongdeshu/GYDB
Android版本地址:https://github.com/fengzhongdeshu/AndGYDB
如果大家支持开源,可以扫赞赏码,支持作者。