一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Access数据库,但是他有比Access更好的平台支持,并且支持分页,现在主要是用于嵌入式的开发。

在开发过程中其实可以直接声明数据库对象来进行存储管理的,代码如下:

代码

SQLiteDatabase sqlitedb; //数据库对象
sqlitedb = this.openOrCreateDatabase(datebaseName, MODE_PRIVATE, null);

//执行代码:
SqlString = " create table " + tableName
+ " (_id integer primary key,num integer,data text) ";
sqlitedb.execSQL(SqlString);

这种方式需要我们处理的内容更多一些,个人感觉不是太方便,就像我们开发C#的程序使用SqlHelper一样,在Android平台中也提供了一个类似的类:

SQLiteOpenHelper 这样类

我们可以通过实现这个类来完成我们的操作,这样更简单和高效:

代码如下:

代码

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DBHelper extends SQLiteOpenHelper {

private static final int DB_VERSION = 1;

public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}

public DBHelper(Context context, String dBName) {
super(context, dBName, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub

}

public void onCreate(SQLiteDatabase db, String createDBSql) {
// TODO Auto-generated method stub
db.execSQL(createDBSql);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}

@Override
public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
}

public void InsertintoDB(SQLiteDatabase db,String sql)
{
db.execSQL(sql);
}
public Cursor opendb(SQLiteDatabase db,String sql) {
return db.rawQuery(sql, null);
}
}

在这里只做了一个简单的写作,没有写太多方法这个只是一个引导,可以对这个类进行扩展,这样使用起来更方便一些。

下面是一个简单的调用:

代码

//声明
SQLiteDatabase db = null;

DBHelper dbhelper = null;

//实例化
dbhelper = new DBHelper(this, "DBName");

//方法
void CreateTable() {

String sql = "Create Table if not exists " + TABLE_NAME + " ( " + ID
+ " text not null , " + NAME + " text not null );";
dbhelper.onCreate(db, sql);

}

void InsertDB(String id, String name) {
db = dbhelper.getWritableDatabase();
String sql = "insert into " + TABLE_NAME + " (" + ID + "," + NAME
+ ") values('" + id + "','" + name + "')";
dbhelper.InsertintoDB(db, sql);
}

void getDB() {
db = dbhelper.getReadableDatabase();
String sql = "select * from " + TABLE_NAME;
Cursor cursor = dbhelper.opendb(db, sql);
String text = "";
while (cursor.moveToNext()) {
for (int i = 0; i < cursor.getColumnCount(); i++) {
text += cursor.getString(i);
}
text += "\n";
}
Toast
.makeText(this, cursor.getCount() + "\n" + text,
Toast.LENGTH_LONG).show();
}

在此只是提供一下简单的参考!欢迎批评指正!

转载于:https://www.cnblogs.com/fly_binbin/archive/2011/01/06/1929143.html

Android Sqlite 数据的存储相关推荐

  1. Android学习 —— 数据的存储与访问方式一: 文件存取

    笔记摘要: 在Android中主要提供了四种数据存储与访问的方式,文件.SharedPreference(偏好参数保存).SOLite数据库.内容提供者(Content provider)和网络, 本 ...

  2. Android基础——数据持久化存储

    数据持久化存储 文件存储 数据保存 数据读取 键值对存储 数据保存 数据读取 数据库存储 数据库创建 增加数据 更新数据 删除数据 查询数据 使用事物 升级数据库 内容来自于第一行代码中数据持久化存储 ...

  3. Android中数据的存储操作

    简述: 内部存储 *总是可用的 *这里的文件默认是只能被你的app所访问的. *当用户卸载你的app的时候,系统会把internal里面的相关文件都清除干净. *Internal是在你想确保不被用户与 ...

  4. Android Sqlite 数据初始化

    android系统下每个程序的数据存放在 /data/data/(package name)/ 目录下,数据库则是在/dababases/目录下.. 所以,你只要用FileInputStream读取原 ...

  5. android模拟器的数据存放,Android模拟器在哪里存储SQLite数据库?

    Android模拟器在哪里存储SQLite数据库? 我正在开发一个将数据存储在SQLite数据库中的Android应用程序. 我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置? 我 ...

  6. android的数据存储方式有哪几种方式,android存储数据的几种方式比较

    机身内存读取主要用个两个类文件输入流(FileInputStream)和文件输出流(FileOutputStream):FileInputStream fileInput = this.openFil ...

  7. android用于查询数据的方法,android: SQLite查询数据

    掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了.不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作. 我们都知道 SQL 的全称是 Structured ...

  8. 【Android 文件管理】分区存储 ( 分区存储机制 和 文件索引数据 )

    文章目录 一.Android 10 以前的存储机制 二.Android 10 及以后的分区存储机制 三.Android 10 中的存储过渡方案 四.文件索引数据库 五.相关文档资料 一.Android ...

  9. 005 Android之数据存储

    文章目录 Android文件系统 Android文件的访问权限 文件访问权限实例 数据存储方式 内部存储 内部存储实例 外部存储 Shared Preferences Shared Preferenc ...

最新文章

  1. Windows上VS2017单步调试FFmpeg源码的方法
  2. python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
  3. STM32 CubeMX 利用设置串口UART采用DMA接收
  4. [剑指offer][JAVA]面试题第[05]题[替换空格][StringBuilder/Buffer]
  5. java大津法确定阈值,大津法得到自适应阈值
  6. python自动化办公-简直出神入化,教你用Python控制Excel实现自动化办公
  7. HDOJ 4632
  8. [JLOI2014]松鼠的新家【树上差分】
  9. 如何使用浏览器的F12调试页面?
  10. 肯德尔(Kendall)相关系数概述及Python计算例
  11. Keep it simple stupid
  12. beyond compare如何设置只比较实际内容?(使用关联规则比较)
  13. 存款利息python题_python入门教程NO.8 用python写个存款利息计算器
  14. 机器学习特征工程之特征缩放+无量纲化:非线性缩放(例如,sigmoid、tanh、arctan等)
  15. BG2RHE - 树莓派3B+外置wifi解决金属外壳屏蔽问题
  16. 2022年长沙市成人高考疫情防控政策
  17. fatal: unable to access ‘https://gitee.com/****/****.git/‘: The requested URL returned error
  18. PTC过流保护器件工作原理及选型方法
  19. 你知道有哪些用于文件同步的方法?
  20. shell 批量修改文件名

热门文章

  1. 计算机中DW用户名和域名,如何获取线程关联用户名和域名
  2. R+大地图时代︱ leaflet/leafletCN 动态、交互式绘制地图(遍地代码图)
  3. 在GPU上部署Bert模型
  4. koa搭建node服务
  5. 一篇文章了解JsBridge之IOS篇
  6. Android RecyclerView批量更新notifyItemRangeChanged
  7. 如何真正学好数据科学?
  8. 使用base64:url 来定义背景图片url
  9. 【Git入门之六】远程仓库
  10. JQuery学习系列(三)语法