51Testing软件测试论坛

标题: Android ORM框架简单介绍 [打印本页]

作者: 司格特    时间: 2018-6-21 16:22
标题: Android ORM框架简单介绍
刚毕业时进入一家公司所做的项目就是负责android视频语音通话方面的,也有点像智能家居方面吧,那
时候刚出来,啥也不会,其实那时候动不动让我看看什么数据同步方向的逻辑啥的(也就是数据库操作
逻辑,幸好在学校学习了点SQL知识),那时候根本也没想过封装啥,只想着能快点独立干活就行了,
也没深入了解,现在想想有点后悔啊,其实那个项目对数据库要求挺高的,那时候的我也是个小白,根
本不知道项目之外还有什么样的世界,哎,算了,不说废话了,进入正题吧。

正文:

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

本地保存
网络存储(放在后台(提供API接口),还有一个是放在开放云服务上)。
对于第一种方式,即本地数据存储,如嵌入式SQLite,你可以选择直接使用SQL语句、Content Provider
或 ORM(对象关系数据映射)。
  对于 Android 应用的开发,主要是使用Java语言,所以适用于Java语言的一些ORM,也能移植于 An
droid 平台上。

最近想复习下数据库方面的知识了,所以本篇文档也当做一个笔记记录一下吧,以前因为都是做的实时性
要求比较高小项目,所以有的都没用到什么数据库,都是现取现用,一些配置文件也是保存到了Preferen
ce中。既然现在准备复习下数据库了,那就深入了解下吧。现在开源社区也有很多的ORM框架,但不知道
哪个好用些,所以就上网查了一下,简单的总结下,稍后一一分析一下再详说。
  先介绍一下ORM的概念,以前也一直听说,不过没详细了解啥意思。其全称叫做对象关系映射(Obj
ect Relation Mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的
转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。面向对象是从软件
工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的. 两
者之间是不匹配的.而ORM作为项目中间件形式实现数据在不同场景下数据关系映射. 对象关系映射是一种
为了解决面向对象与关系数据库存在的互不匹配的现象的技术.ORM就是这样而来的。

ORM框架简介:

1. ActiveAndroid

Repository: https://github.com/pardom/ActiveAndroid
Description: ActiveAndroid是一个轻量级的orm框架,名称命令方式类似于Yii、Rails等使用的orm框架ActiveRecord。

2. OrmLite-Android

Repository: https://github.com/j256/ormlite-android
Description: OrmLite不是Android平台专用的orm框架,它是一个Java orm,OrmLite For Android增加了对A
ndroid平台的支持。

3. GreenDAO

Repository: https://github.com/greenrobot/greenDAO
Description: GreenDAO是一个轻量级,快速的orm框架。简化建表、查询、更新、插入、事务、索引的操作。
Features:
1、性能突出(比ormlite快4-5倍), performance
2、库小,核心包小于100k
3、简单易用的API
4、支持protobuf
5、自动生成数据库访问代码

4. Realm

Repository: https://github.com/realm/realm-java
Description: 移动端的数据库,适用于 Phone、Tablet、Wearable,支持 ORM,线程安全、支持连表及数据
库加密,比 SQLite 性能更好。
Features:
1、着重移动端
2、简单易用的API
3、支持线程安全,关系数据库和加密
4、访问快速
5、跨平台

Sugar ORM

Repository: https://github.com/satyan/sugar
Description: Android平台专用orm框架。
Features:
1、配置少
2、自动生成表结构
3、支持在不同模式版本直接切换




作者: qqq911    时间: 2018-6-26 11:13
感谢分享·~
作者: Miss_love    时间: 2020-12-29 11:02
感谢分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2