基于sqlite3的ios&android数据库ORM框架

写在前面:

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

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

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

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

GYDB

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

gydb_03.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:{tag}'
    }

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


/**

 查询

 @return result

 */

-(NSArray*)query ;

/**

 删除

 @return result

 */

-(BOOL)remove ;

/**

 更新

 @return return value description

 */

-(BOOL)update ;

/**

 保存

 @return return 返回存储失败的model , 返回nil 表示全部存储成功

 */

-(NSArray*)save ;

Android:


/**

保存

@return return 返回存储失败的model , 返回nil 表示全部存储成功

*/

public List save()

/**

查询

@return result

*/

public List query()

/**

删除

@return result

*/

public boolean remove()

/**

更新

@return return value description

*/

public boolean update()

好了,我们的介绍先写到这里,如果大家喜欢的话,可以在项目上留个star

再重复一遍项目地址,项目中包含简单示例,大家可以直接运行查看基本使用.

iOS版地址:https://github.com/fengzhongdeshu/GYDB

Android版本地址:https://github.com/fengzhongdeshu/AndGYDB

暂无评论

相关推荐

暂无相关文章!

微信扫一扫,分享到朋友圈

基于sqlite3的ios&android数据库ORM框架