android orm sqlite,基于sqlite3的iosandroid数据库ORM框架

写在前面:

简书地址:

移动端数据存储的主要特点:

1)数据存储在用户端,数据迁移困难(版本迭代,字段更新,数据表改变等)

2)一般的项目,数据库的使用以数据暂存为主,数据关系并不复杂,联表查询等功能使用并不是很多。

3)系统现有的sqlite3接口,不是面向对象操作,使用起来,还需要手动包装(不过也有大量的三方框架已经帮我们实现了ORM功能)

基于以上的特性,我们研发了移动端数据框架:GYDB

a4c26d1e5885305701be709a3d33442f.png

### 项目地址:

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

如果大家支持开源,可以扫赞赏码,支持作者。

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值