你的位置:首页 > ASP.net教程

[ASP.net教程]Android 数据存储之 SQLiteDatabase


 

惯例:安卓的三种本地的典型数据存储方式

  1. SharedPreferences
  2. 以文件格式保存在本地存储中
  3. SQL数据库

    本节学习的是 SQLiteDatabase 的使用方式,而在使用方面也只是展示了如何创建数据库,创建表,写入数据。然后查询出来。

    因为之前在 word 中操作以表格的形式插入多行代码时遇到了无法高亮,模糊不清的状况,所以本节并不会写出使用方法。

    详情请直接访问我的 GitHub 项目:https://github.com/Chenstyle/AndroidTraining

    具体注释什么的也写在了代码之中。所以,上代码:

package com.zhizhao.androidtraining.save_data;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

/**
* Created by zhizhao on 2015/11/2 0002 in 10:53.
* Ps:这个类写到最后我觉得不能这么下去了。如此下去也只是增加一些安卓基本操作使用
* 而我自己更加倾向于更快的提升自己的项目经验。
* 项目经验方面,没有什么比自己真正做一个项目提升明显了。
* 所以下一步,学习开源项目,然后发布出去。
* 这个项目也会继续写,继续提交。博客方面也会继续跟进。
*/
public class UsingDatabase {
private String dbName;
private String tableName;
private Context dbContext;
private String userName;
private String userPassword;

public UsingDatabase(String dbName, String tableName,
Context context, String data1, String data2){
this.dbName = dbName;
this.tableName = tableName;
this.dbContext = context;
this.userName = data1;
this.userPassword = data2;
}

public void createUserTable(){
//openOrCreateDatabase(String name, int mode, CursorFactory factory);
//第一个参数为数据库名称,第二个为权限,第三个为 CursorFactory 对象,
// 用于查询时返回 Cursor 的子类对象。或者传入 null 使用默认的 factory 构造
SQLiteDatabase db = dbContext.openOrCreateDatabase(dbName, dbContext.MODE_PRIVATE, null);
String cmd = "CREATE TABLE IF NOT EXISTS "+ tableName +" (name VARCHAR, password VARCHAR)";
db.execSQL(cmd);

ContentValues cv = new ContentValues();
cv.put("name", userName);
cv.put("password", userPassword);
//这里简直就是把我害惨了。记住,是表名。
db.insert(tableName, null, cv);
db.close();
}

public void insertUserTable(){
SQLiteDatabase db = dbContext.openOrCreateDatabase(dbName, dbContext.MODE_PRIVATE, null);

}

public void queryUserTable(){
SQLiteDatabase db = dbContext.openOrCreateDatabase(dbName, dbContext.MODE_PRIVATE, null);
//查询的结果通过 Cursor 返回。代表数据集的游标
Cursor cursor = db.rawQuery("SELECT * FROM "+tableName, null);
Log.v("数据库查询的结果===", "----------");
while(cursor.moveToNext()){
//根据数据库表的列序列查询。
String str = cursor.getString(0);
Log.v("数据库查询的结果===", ""+str);
}

Log.v("数据库查询的结果===", "+++");
cursor.close();
db.close();
}

}


 

最近发生了很多事情,因为实习的公司这边的一些问题,有急切转公司的想法。所以提升自身技能成为了当前最迫切的事情。以后的博客会陆续上Android Training 方面。

当然,在学习开源项目中如果遇到什么好的点子或者技巧,也会分享出来。基本要保持在每天都有的程度吧。