Android中的数据存储之数据库存储

11人阅读 评论(0) 收藏 举报
分类:

Android中的数据库存储包括SQLite、GreenDao等轻量级的数据库存储方式。本文主要介绍SQLite数据库的存储方式。

SQLite是一种非常流行的嵌入式数据库,是由C语言编写而成,是一款轻型关系型数据库,支持SQL,支持多种操作系统,完全独立运行,没有依赖性。SQLite是一个嵌入型的轻量级数据库,适合小数据量,而大型数据库独立运行在数据库服务器上,适合大数据量级别,大型数据库通常以网络的方式对外提供服务。

1、SQLite数据库的使用:

  1、自定义类继承SQLiteOpenHelper
  2、继承onCreate方法,在此方法中使用SQLiteDatabase对象创建表格
public class MySQLiteOpenHelper extends SQLiteOpenHelper{

    /**
     *
     * @param context 	上下文
     * @param name		所需要创建的数据库的名称,创建数据库保默认保存在/data/data/packageName/databases/
     * @param factory	Cursor的工厂类,一般穿null值就可以,使用系统默认的CursorFactory类
     * @param version	所创建的数据库的版本
     */
    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    /**
     * 当数据库被创建时,此方法被回调
     * 通过系统传入的db对象, 在此方法中创建数据库表格
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table if not exists person(_id integer primary key "
                + "autoincrement, name, weight)");
    }

    /**
     * 数据库版本升级时被回调
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

3、通过SQLiteOpenHelper类获取数据库的链接对象SQLiteDatabase对象

MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "my_db", null, 1);
SQLiteDatabase database = helper.getReadableDatabase();

4、通过SQLiteDatabase对象对数据进行增删改查操作

public void btnClicked(View view) {
		switch (view.getId()) {
		case R.id.btnInsert:
			//database.execSQL("insert into person('name', 'weight') values('三胖','80')");
			ContentValues insertValues = new ContentValues();
			insertValues.put("name", "习主席");
			insertValues.put("weight", "140");
			database.insert(
					"person",  //表名
					null,
					insertValues);  //插入每一行所指定的列值
			break;
		case R.id.btnUpdate:
			//database.execSQL("update person SET weight='200' where _id='3'");
			ContentValues updateValues = new ContentValues();
			updateValues.put("weight", "300");  //SET weight='300'
			database.update("person", updateValues, "name=?", new String[]{"三胖"});
			break;
		case R.id.btnDelete:
			//database.execSQL("delete from person where _id='6'");
			database.delete("person", "name=?", new String[]{"三胖"});
			break;
		case R.id.btnQuery:
			/**
			 * rawQuery进行数据库的查询
			 * 第一个参数:SQL语句,可以包含?占位符
			 * 第二个参数:String数组,其中元素会将SQL语句中的?进行替换
			 */
			/**Cursor cursor = database.rawQuery(
					"select * from person where _id=?", new String[]{"1"});*/
			
			Cursor cursor = database.query(
					"person"	,	//表名
					 new String[]{"_id", "name", "weight"},  //需要查询返回的列的数组 
					 null,		//查询的where语句,不能再添加where关键字
					 null, //替换查询语句中的占位符,元素个数需要与selection语句中的?个数一致
					 null, null, null);
			
			/*
			 * 使用Cursor.moveToNext方法可以对Cursor进行遍历
			 */
			while(cursor.moveToNext()) {
				String name = cursor.getString(cursor.getColumnIndex("name"));
				String weight = cursor.getString(cursor.getColumnIndex("weight"));
				android.util.Log.e("danny", "name is " + name + " weight is " + weight);
			}
			break;

		default:
			break;
		}
	}

查看评论

android存储之网络存储和数据库存储

昨天说老师说了android的网络存储,对协议有了一个更深的理解。 数据上传到网络,尽管 b/s 和c/s的架构不一样,但是它们还是能上传数据到网络,因为都遵循协议的规范,c/s存储数据到网络,思想...
  • Watering_sea
  • Watering_sea
  • 2015年07月09日 10:37
  • 924

安卓中五种数据存储方式

分别是: --SharedPreferences存储; --文件存储; --SQLite数据库存储; --ContentProvider存储; --网络存储; 1.1. SharedPreferenc...
  • zsr0526
  • zsr0526
  • 2016年11月14日 23:41
  • 1061

安卓数据存储总结及详解

前言(首先说说什么存储的几个概念) 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清...
  • qq_27280457
  • qq_27280457
  • 2016年06月30日 09:27
  • 2932

为什么ES不适合做数据存储

前段时间公司想尝试用ES来存一部分数据,以此缓解数据增长带来的对数据库的压力。ES的介绍很多地方都有,就不再写了。在研究了一段时间后,发现ES不适合做为数据存储使用,理由如下: mapping不可改...
  • wzdxt
  • wzdxt
  • 2016年03月20日 14:43
  • 12930

Android上常用的几种本地数据存储方式:1、使用SharedPreferences存储数据

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使...
  • freezingxu
  • freezingxu
  • 2017年04月18日 16:25
  • 714

Android中数据存储——文件存储数据

当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式Android 的数据存储有5种方式:1. SharedP...
  • To_be_Designer
  • To_be_Designer
  • 2015年09月07日 21:35
  • 1944

Android数据存储几种方式用法总结

Android数据存储几种方式用法总结 1、概述   Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求...
  • xiyiyindie
  • xiyiyindie
  • 2016年12月11日 12:16
  • 1958

DB理论--数据存储方式

从本篇开始呢,我来详细的整理一下mysql。mysql其实还是有点难度的,这里我会认真的,详细的整理到MySQL的各个细节。OK,现在我来开始。 首先呢,这里先开始整理数据库理论,为了方...
  • u011794238
  • u011794238
  • 2016年03月14日 09:56
  • 478

android的五种存储机制

Android提供了5种方式存储数据: --使用SharedPreferences存储数据; --文件存储数据;  --SQLite数据库存储数据; --使用ContentProvider存储...
  • heminghung
  • heminghung
  • 2016年05月29日 14:26
  • 1019

Android网络与数据存储01

概要:这次制作App的引导页,主要用到2个知识“SharedPreferences 和 ViewPager” Genymotion的Android模拟器,版本5.1.0以下是默认root的,可以使用R...
  • xiejun188
  • xiejun188
  • 2016年08月09日 20:44
  • 396
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 656
    排名: 7万+
    最新评论