安卓中的数据库操作

1.原生操作

Android 中封装好的方法-------SQLliteOpenHelper

  • 面向对象的操作
  • sql语句的操作

2.三方操作

ORM是指对象关系映射(Object Relation Mapping),是一种程序设计技术,(greenDao和ormLite都是基于orm框架)

用于实现面向对象编程语言不同类型系统的数据之间的转换。

从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”

面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,

关系数据库则=是从数学理论发展而来的.  两者之间是不匹配的.

而ORM作为项目中间件形式实现数据在不同场景下数据关系映射.

对象关系映射是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.ORM就是这样而来的

  • ormlite框架

基于注解和反射的的方式,导致ormlite性能有着一定的损失(注解其实也是利用了反射的原理)

优点:
文档较全面,社区活跃,有好的维护,使用简单,易上手。

缺点:
基于反射,效率较低

  • GreenDao

优点:
效率很高,插入和更新的速度是sqlite的2倍,加载实体的速度是ormlite的4.5倍。

文件较小(<100K),占用更少的内存 ,但是需要create Dao,
操作实体灵活:支持get,update,delete等操作

缺点:

学习成本较高。其中使用了一个java工程根据一些属性和规则去generate一些基础代码,类似于javaBean但会有一些规则,另外还有QueryBuilder、Dao等API,所以首先要明白整个过程,才能方便使用。没有ORMLite那样封装的完整,greenDao的官网上也指出,正是基于generator而不是反射,才使得其效率高的多。

时间: 2024-08-28 10:06:09

安卓中的数据库操作的相关文章

关于Django中的数据库操作API之distinct去重的一个误传

关于Django中的数据库操作API之distinct去重的一个误传 最近在做一个Server的项目,后台框架是Apache mod_wsgi + django.django是一个基于Python的Web开发框架,功能十分强大,至于有多强大,还是读者们自己去体验吧.我在这里要说的一个问题是关于Python的ORM功能的.问题就在django提供的数据库操作API中的distinct()函数,了解SQL语句的读者都应该知道,DISTINCT关键字可以在select操作时去重.django里的这个d

android中的数据库操作(转)

android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同学来说,把SQL92标准中的一些基本概念.基本语句快速的了解一下,是很有必要的,这样待会用Android的da

android中的数据库操作【转】

http://blog.csdn.net/nieweilin/article/details/5919013 android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库   android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库,它是用c语言构建的.相关简介可以从链接查看. 2.数据库基本知识观花   对于一些和我一样还没有真正系统学习数据库技术的同

SQL中DML(数据库操作语言)的使用

1.插入语句: INSERT [INTO] table [(column1, column2, column3, . . .)] VALUES(value1, value2, value3, . . .); 例:INSERT INTO user VALUES(NULL, 'test', '123456'); 例:INSERT INTO user (username, password) VALUES('test', '123456'); 实际上还有一种方式: 例:INSERT INTO user

PHP中对数据库操作的封装

在动态网面设计中很多都要涉及到对数据库的操作,但是有时跟据需要而改用其它后台数据库,就需要大量修改程序.这是一件枯燥.费时而且容易出错的功作.其实我们可以用PHP中的类来实现对数据库操作的封装,从而使写出的程序在很小的改动下就可以完成后台数据库的更改. <? class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表MySql,当为 2代表 SQL Server,为3时为ODBC或其它. var $dbHost; //数据库所在主机域名 va

iOS 中SQLite数据库操作

在iOS中实现SQLite数据库的操作:1.导入框架(libsqlite3.0.tbd) 2.导入头文件<sqlite3.h> 3.实现数据的增删改查 实现简单 SQLite数据库操作 的 demo 具体过程: 1.创建名为 SQLite_Manage 的.h .m 文件,导入头文件 <sqlite3.h> 2.数据库在一个app中只有一个,使用单例模式:(代码如下) 1 + (SQLite_Manager *)sharedManager{ 2 static SQLite_Mana

CodeIgniter学习笔记(七)&mdash;&mdash;CI中的数据库操作

CI数据库配置文件是/application/config/database.php // 可以创建多个数据库连接配置,通过$active_group选择使用哪个数据库连接 $active_group = 'default'; // 配置是否加载查询构建类,默认为TRUE,通常保持默认值 $query_builder = TRUE; // 数据库连接配置,可以有多个连接配置,索引需要区分开 $db['default'] = array( 'dsn' => '', 'hostname' => '

PL\SQL中对数据库操作后没有改变

问题描述:在PL\SQL的SQL WINDOW中对数据库进行增.删.改操作后,在别的命令窗口查没有改变问题分析:SQL WINDOW中对数据库的增删改操作都是临时的,需要进行COMMIT才能生效,但是在关闭窗口时操作会提示是否保存.解决方法:对每次操作后,添加COMMIT语句,或者直接使用右上角的提交按钮. 原文地址:http://blog.51cto.com/13402621/2156312

Python框架学习之Flask中的数据库操作

数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类,可以在文件中直接继承过来.但是在Flask中,并没有把Model类封装好,需要使用一个扩展包,Flask-SQLAlchemy.它是一个对数据库的抽象,让开发者不用这些编写SQL语句,而是使用其提供的接口去操作数据库,这其中涉及到一个非常重要的思想:ORM什么是ORM呢?下面我们就来详细讲解一下.