Android orm mysql_最受欢迎的5个Android ORM框架

在开发Android应用时,保存数据有这么几个方式,

一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter 会是一个不错的选择)。

对于第一种方式,即本地数据存储,如嵌入式SQLite,你可以选择直接使用SQL语句、Content Provider 或 ORM(对象关系数据映射)。

对于 Android 应用的开发,主要是使用Java语言,所以适用于Java语言的一些ORM,也能移植于 Android 平台上。

下面是5个可用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。可以很容易的处理1对1和1对多的关系型数据,并通过3个函数save(), delete() 和 find() (或者 findById()) 来简化CRUD基本操作。

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

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

public class User extends SugarRecord {

String username;

String password;

int age;

@Ignore

String bio; //this will 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 = new User(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)。

5bd0192605a72f967ea85fd4bad00937.png

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

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

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

4. Active Android

Active Record(活动目录)是Yii、Rails等框架中对ORM实现的典型命名方式。Active Android 帮助你以面向对象的方式来操作SQLite。

在你的项目中包含Active Android,你需要在项目的 /libs 目录下添加一个jar文件。可以从Github中获取源代码并使用Maven进行编辑。然后你应该添加这些meta-data到你应用程序的 AndroidManifest.xml 配置中:

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

public class MyActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ActiveAndroid.initialize(this);

//rest of the app

}

}

现在,你可以使用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/

MiniOrm-for-Android是什么? MiniOrm-for-android  是一款简单,只能,灵活的android ORM框架,完全基于对象进行操作。主要帮助android程序员的快速开发。通过反射将查询的数据智能的转换成 Entity 。省去开发人员手动解析的时间。 功能特点: 小巧,类库大小27k 快速,10000条数据,时长3.6秒 使用简单,支持实体类注解方式,除了实体类之外只需创建一个DAO就可以进行操作。 支持原声的sql语句操作 耦合性低 结构模型: 类关系图: 纯java结构设计,通过接口的设计,将上层业务和实际操作数据库的部分进行分离,开发者可以在此基础上自行实现mysql等数据的支持。下面是java部分核心设计 接入类库: 在项目的程序目录build.gradle中加入 dependencies {      compile 'com.ml.miniorm:miniorm:1.1.8'  } 基本方法: 创建表: StuDao stuDao=new StuDao(); stuDao.createTable();  新增: Student student=new Student();  student.setAge(2);  student.setStuName("王小明"); new StuDao().save(student);  删除:    //1. 根据主键删除student.setId(2);new StudentDao().delete(student); //2.根据其他属性删除 student.setStuName("kkkk");     student.setAge(2); stuDao.delete(student); //3.删除全部 stuDao.deleteAll(); 更新:  // (注意,需指定ID) student.setId(2); student.setStuName("kkkk"); stuDao.update(student); 查询: //全部 List<Student> list=stuDao.queryAll(); //query  by id stuDao.queryById(1)||stuDao.queryById(“1” 精确条件查询 可以写sql语句 然后直接调用方法 teacherDao.executeQuery("select * from usertable",teacherDao.getQueryEntity(),teacherDao.getReflexEntity() ); 调用QueryBuilder //查询 全部 性别为 女 List listaaa=teacherDao.getQueryBuilder().callQuery().queryAll().where(Where.handle().eq("sex","女")).executeQueryList(); List<Teacher> listaaa=teacherDao.getQueryBuilder().callQuery().queryAll().where(Where.handle().and("sex","=","女")).executeQueryList(); //模糊查询 List<CustomerBean> list = customerBeanDao.getQueryBuilder().callQuery().queryAll().where(Where.handle().and("userName", " like ", "%" tiaojian "%").or().and("company", " like ", "%" tiaojian "%").or().and("nickname", " like ", "%" tiaojian "%")).executeQueryList(); //对应的 sql select * from CustomerBean where userName like '%你曾%' or company like '%你曾%' or nickname like '%你曾%' ; //根据主键分页 int lastid = teacherDao.queryLastInsertId(); String table = teacherDao.getReflexEntity().getTableEntity().getTableName(); String column = teacherDao.getReflexEntity().getTableIdEntity().getColumnName(); List list1 = teacherDao.getQueryBuilder().callQuery().queryAll().where(Where.handle().and(column, "<=", lastid).and(column, ">", lastid - 标签:MiniOrm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值