下面是8个可用ORM的总体介绍

1. OrmLite

OrmLite不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。语法中广泛使用了注解(Annotation)。

官方网站:http://ormlite.com/sqlite_java_android_orm.shtml

2. SugarORM

SugarORM Android 平台专用ORM。提供简单易学的APIs。可以很容易的处理111对多的关系型数据,并通过3个函数save(),delete() find() (或者findById()) 来简化CRUD基本操作。

要启用SugarORM,需要在你的应用程序AndroidManifest.xml 配置中添加如下meta-data标签:

<meta-data android:name="DATABASE"android:value="my_database.db" />

<meta-data android:name="VERSION"android:value="1" />

<meta-data android:name="QUERY_LOG"android:value="true" />

<meta-data android:name="DOMAIN_PACKAGE_NAME"android:value="com.my-domain" />

然后就可以从SugarORM扩展需要保存的数据类:

public class User extends SugarRecord<User> {

    String username;

    String password;

int age;

    @Ignore

    String bio; //thiswill be ignored by SugarORM

 

public User() { }

 

public User(String username, String password,int age){

this.username = username;

this.password = password;

this.age = age;

    }

}

要添加一个User,代码如下:

User johndoe = newUser(getContext(),"john.doe","secret",19);

johndoe.save(); //stores the new user into the database

官方网站:http://satyan.github.io/sugar/getting-started.html

3. GreenDAO

当性能很重要时(数据访问频繁),GreenDao是一个很快的解决方案,它能够支持数千条记录的CRUD每秒,和OrmLite相比,GreenDAO要快几乎4.5倍。(准确数据请自行benchmark)。

-优点:性能很不错,

-缺点:API却不太友好,而且不支持复合主键,主键必须要有并且必须是long或者Long。持久类可以用它提供的模版生成,但是一旦使用了它的模版,持久类、DAO就不能随意去修改,扩展性不是很好。如果不使用它的模版,代码写起来就很繁琐。

 

GreenDAO小于100KB,所以对于应用程序APK的大小影响很小。

这里有一个教程,演示如何使用AndroidStudio,在Android应用程序中使用GreenDAO框架。

官方网站:http://greendao-orm.com/

4. ActiveAndroid

Active Record(活动目录)是YiiRails等框架中对ORM实现的典型命名方式。ActiveAndroid 帮助你以面向对象的方式来操作SQLite
在你的项目中包含Active Android,你需要在项目的 /libs 目录下添加一个jar文件。可以从Github中获取源代码并使用Maven进行编辑。然后你应该添加这些meta-data到你应用程序的AndroidManifest.xml 配置中:

<meta-data android:name="AA_DB_NAME"android:value="my_database.db" />

<meta-data android:name="AA_DB_VERSION"android:value="1" />

然后在你的Activity中调用 ActiveAndroid.initialize()方法:

public class MyActivity extends Activity {

    @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ActiveAndroid.initialize(this);

 

        //rest of theapp

    }

}

现在,你可以使用Java注解来创建模型类:

@Table(name = "User")

public class User extends Model {

@Column(name = "username")

public String username;

 

@Column(name = "password")

public String password;

 

public User() {

super();

    }

 

public User(String username,String password) {

super();

this.username = username;

this.password = password;

    }

}

官方网站:http://www.activeandroid.com/

5. Realm

Realm 是一个将可以使用的Android ORM,基于C++编写,直接运行在你的设备硬件上(不需要被解释),因此运行很快。它同时是开源跨平台的,iOS的代码可以在GitHub找到,你还可以找到Objective-C以及Swift编写的Realm使用实例。

官方网站:http://realm.io/

 

6.DBFlow——强大的AndroidORM框架

DBFlow是一款快速、功能强大和非常简单的使用annotationprocessingORM Android数据库类库,使用该类库无需编写大多数SQL语句,无需为每张表都编写ContentValues,无需将游标转化为模型等等,这样可以让开发者花费更多的精力关注复杂的问题,而不是编写重复的代码。

 

DBFlow基于ActiveAndroid, Schematic, OllieSprinkles构建,利用各个类库的优点提供更多功能和扩展。

 

特性:

1、无缝支持多个数据库;

2、使用annotationprocessing提高速度;

3ModelContainer类库可以直接解析像JSON这样的数据;

4、增加灵活性的丰富接口。

 

Github托管地址:https://github.com/agrosner/DBFlow

 

7. Slim Repo——轻量级的Android/SQLiteORM类库

该类库的灵感来自于GreenDAOMicrosoftEntity Framework Code First

 

该类库的目的是将Android应用的数据持久化逻辑从底层存储中完全解耦。使用简单、明了、易读和类型安全的语法执行CRUD操作。

 

由于Slim Repo的模块化设计,无需改变用户代码,便可添加对任何其他SQLNoSQL或内存中存储(In-memorystorage)的支持。

 

Github托管地址:https://github.com/slim-gears/slimrepo

 

 

 

8. RushOrm——AndroidORM框架

RushOrm是一个Android ORM框架,它的目的是在一个简单的接口下抽象出SQLite所有交互的方法,使得对象的存储实现变得令人难以置信的快捷。

核心功能:

1、自定义字段:轻松实现定制字段,因此任何对象都可以被序列化到数据库。

2、表关系:(1)一对一;(2)一对多,保存子对象列表;(3)保存一个父对象会自动保存与之相关关联的子对象;

3、文件:轻松的保存长文本, JSONbitmaps文件;

4、升级:数据库升级支持通过注解取代升级脚本。

 

RushOrm适用于复杂数据结构和在最短时间内实现数据库存储的项目。

 

用法:

RushOrm初始化的最佳方法是在Application类中:

 

 Extrainformation can be optionally added to the Manifest the defaults are specifiedbelow.

 

 

 

Tables

Simply extendRushObject

 

 

 

If you classhierarchy means you can't extend RushObject, you can instead implement Rushinterface and copy in the methods below.

Children

Classes cansave other RushObject fields or lists.

Select

Retrievingsaved objects is as powerful as raw SQL.

Files

To handlelong string, image or other data RushOrm has RushFile an extension toRushObject which writes data to disk.

Transitions

Objects andtheir children are saved in transitions by default but lists of RushObjects canalso be saved in a transition.

Customise

RushOrm canhave many elements of it customised to fit any purpose, usingRushCore.initialize allows custom implementation of most features.

实现一个非常复杂的升级要求实现自己的RushUpgradeManager和运行自定义SQL onUpgrade

Github托管地址:https://github.com/Stuart-campbell/RushOrm

 

9KJFrameForAndroid

KJFrameForAndroid 又叫KJLibrary,是一个androidormioc框架。同时封装了android中的BitmapHttp操作的框架,使其更加简单易用;
KJFrameForAndroid
的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。我们提倡用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。

使用帮助:
MVC模块
KJBitmap使用方法
KJHttp请求的使用
数据库模块使用方法
KJBitmap与KJHttp的深度用法

框架API文档:http://kjframe.github.io
注,KJFrameForAndroid需要在AndroidManifest.xml中声明如下权限

<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />

*推荐:GreenDAORushOrm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值