Android数据持久化之SQLite数据库用法分析

本文实例讲述了Android数据持久化之SQLite数据库用法。分享给大家供大家参考,具体如下:

这一节我将总结一下android中的另一种数据存储——SQLite 的相关知识点

SQLite数据库是android系统自带的,主要用到的类包括SQLiteOpenHelperSQLiteDatabase

1、SQLiteOpenHelper:创建数据库和数据库版本管理的辅助类,该类是一个抽象类,所以我们一般都有一个子类SQLiteOpenHelper,需要继承实现的方法主要有onCreate()、onUpgrade()、getWritableDatabase()等。getWritableDatabase()方法返回的是SQLiteDatabase对象实例,如果数据库尚未创建,则会自动调用onCreate()方法来创建数据库,所以一些建表和数据初始化操作,应该放在onCreate()方法里 。

2、SQLiteDatabase:操作SQLite数据库的类,可以进行SQL语句,对数据库进行增、删、改、查的操作,该对象已经对基本的数据库操作进行了封装。可以调用insert()、delete()、executeSQL()等方法,进行实际的数据库操作 ,这个类相当于JDBC中的Connection,也类似Hibernate中的Session,或者Spring中的HibernateTemplate;也可以进行transaction的控制。很多对数据库的操作最终都是通过SQLiteDatabase实例来调用执行的。

注意:数据库对于一个应用时私有的,并且在一个应用当中,数据库的名字也是唯一的。

3、Corsor:游标。通过Cursor可以对于从数据库中查询出来的结果集进行随机的读写访问。对于数据库的查询结果,一般是由子类SQLiteCursor返回的。

特别注意:开发的时候一般会对前面两个类做一下包装,比如进行简单的封装,使得SQLiteDatabase的查询方法不是返回原始的Cursor类(Cursor相当于JDBC中的ResultSet),而是返回业务对象等等

实现的代码如下:

SQLiteOpenHelper类的实现:

package com.sql;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DataBaseHelpler extends SQLiteOpenHelper{
  private static final int VERSION = 1;
  public DataBaseHelpler(Context context, String name, CursorFactory factory,
      int version) {
    super(context, name, factory, version);
    // TODO Auto-generated constructor stub
  }
  public DataBaseHelpler(Context context,String name){
    this(context,name,VERSION);
  }
  public DataBaseHelpler(Context context, String name,int version){
    this(context, name, null, version);
  }
  @Override
  public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    System.out.println("creat database");
    db.execSQL("create table student(no int,name verchar(20))");
  }
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    System.out.println("upgrade database");
  }
}

SQLite类的实现:

package com.sql;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SQLiteActivity extends Activity {
  /** Called when the activity is first created. */
  private Button button_create,
          button_upgreate,
          button_insert,
          button_up,
          button_query,
          button_delete;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    button_create = (Button) findViewById(R.id.button1);
    button_upgreate = (Button) findViewById(R.id.button2);
    button_insert = (Button) findViewById(R.id.button3);
    button_up = (Button) findViewById(R.id.button4);
    button_query = (Button) findViewById(R.id.button5);
    button_delete = (Button) findViewById(R.id.button6);
    //创建数据库
    button_create.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
        DataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one");
        SQLiteDatabase sql = dbh.getReadableDatabase();
      }
    });
    //更新数据库
    button_upgreate.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
        DataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one",2);
        SQLiteDatabase sql = dbh.getReadableDatabase();
      }
    });
    //向数据库中的表中插入内容
    button_insert.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
        ContentValues values = new ContentValues();
        values.put("no", 123);
        values.put("name", "zhangsan");
        DataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one",2);
        SQLiteDatabase sql = dbh.getReadableDatabase();
        sql.insert("tabel_one", null, values);
      }
    });
    //更新表的内容
    button_up.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
        DataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one");
        SQLiteDatabase sql = dbh.getReadableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", "wangwu");
        sql.update("tabel_one", values, "id=?", new String[]{"1"});
      }
    });
    //查找表的内容
    button_query.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
      }
    });
    //删除
    button_delete.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
      }
    });
  }
}

以上就是SQLite基本的应用。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android SQLite数据库基本操作方法

    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能.而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库.那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧,仍然以一个小例子开始: 在创建Android项目之前,我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息,为了日后数据库的更新更加方便 ,我们可以用一个专门的类保存数据库的相关信息,以后如果要更新数据库的话只需要该动这个类

  • Android实现SQLite添加、更新及删除行的方法

    本文实例讲述了Android实现SQLite添加.更新及删除行的方法.分享给大家供大家参考,具体如下: SQLiteDatabase类暴露了特定的方法,如insert.delete和update等方法,这些方法包装了执行这些动作所需的SQL语句.尽管如此,execSQL方法允许你在数据库表上执行任何有效的SQL语句,而这些动作就是你想要手动执行的. 在任何时候,如果你修改了底层数据库的值,你都应该调用任一在当前表上浏览的Cursor的refreshQuery方法. 插入新行 为了创建一个新行,构

  • 详解Android数据存储—使用SQLite数据库

    SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库.Android提供了3种操作数据的方式,SharedPreference(共享首选项).文件存储以及SQLite数据库. SQLite数据库文件被保存在/data/data/package_name/databases目录下. 一.创建和删除表 1.创建表 创建表的SQL语句为: CREATE TABLE userInfo_brief ( id INTEGER PRIMARY KEY AUTOINCREMENT, na

  • Android开发中使用sqlite实现新闻收藏和取消收藏的功能

    之前学习oracle,简单的认为数据库只存在服务器端,学习安卓之后才发现原来android和Ios本身是"携带"数据库的--SQLite,是轻量级的.嵌入式的.关系型数据库,是Android.IOS等广泛使用的的数据库系统.用于存储本地的一直状态.刚写出来一个实现新闻收藏的功能,写出来供大家参考. 在Android中我们通过SQLiteDatabase这个类的对象操作SQLite数据库.由于SQLite数据库并不需要像C/S数据库那样建立连接以及身份验证的特性,以及SQLite数据库单

  • Android利用listview控件操作SQLite数据库实例

    在本实例中,首先我们利用SQLiteOpenHelper类建立一个数据库,并写好增.删.查等方法,通过SimpleCursorAdapter连接listview实现数据库的增加.查询以及长按删除的功能. 首先,我们先认识一下什么是SQLiteOpenHelper类. Android为了操作SQlite数据库,提供了SQLiteDatabase类,其内封装了insert .delete.update .query .执行SQL命令等操作.同时又为SQLiteDatabase提供了一个辅助类,SQL

  • Android 中SQLite技术实例详解

    Android和iOS的数据库都是用SQLite来实现. 一,SQLite数据库简介: 轻量级:SQLite数据库是一个轻量级的数据库,适用于少量数据的CURD; 文件本质:SQLite数据库支持大部分SQL语法,允许使用SQL语句操作数据库,其本质是一个文件,不需要安装启动. 数据读写:SQLite数据库打开只是一个文件的读写流. 二.简单的数据库语句知识 在android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持NULL,INTEGER,REAL(浮点数字),TE

  • Android数据持久化之SQLite数据库用法分析

    本文实例讲述了Android数据持久化之SQLite数据库用法.分享给大家供大家参考,具体如下: 这一节我将总结一下android中的另一种数据存储--SQLite 的相关知识点 SQLite数据库是android系统自带的,主要用到的类包括SQLiteOpenHelper和SQLiteDatabase. 1.SQLiteOpenHelper:创建数据库和数据库版本管理的辅助类,该类是一个抽象类,所以我们一般都有一个子类SQLiteOpenHelper,需要继承实现的方法主要有onCreate(

  • Android数据持久化之File机制分析

    本文实例讲述了Android数据持久化之File机制.分享给大家供大家参考,具体如下: 在使用Java SE平台开发C/S结构的软件中,File 的IO输入输出流的使用率是非常高的,通过使用IO输入输出流可以对存储介质上的文件进行读写操作,下面的代码就是实现一个在Android平台上使用File对象操作文件的功能: package com.example.data_file; import java.io.File; import java.io.FileInputStream; import

  • android studio数据存储建立SQLite数据库实现增删查改

    实验目的: 分别使用sqlite3工具和Android代码的方式建立SQLite数据库.在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加.删除和更新. 实验要求: 1.创建一个学生管理的应用,基本信息包含学生姓名,班级,学号.采用数据库存储这些信息. 2.应用应该至少包含信息录入和删除功能. 3.数据显示考虑采用ListView. 实验效果: 工程结构: 源代码: DBAdapter.java package com.example.shiyan6_sqlite; impo

  • android studio数据存储建立SQLite数据库实现增删查改

    实验目的: 分别使用sqlite3工具和Android代码的方式建立SQLite数据库.在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加.删除和更新. 实验要求: 1.创建一个学生管理的应用,基本信息包含学生姓名,班级,学号.采用数据库存储这些信息. 2.应用应该至少包含信息录入和删除功能. 3.数据显示考虑采用ListView. 实验效果: 工程结构: 源代码: DBAdapter.java package com.example.shiyan6_sqlite; impo

  • Android数据持久化之ContentProvider机制详解

    本文实例讲述了Android数据持久化之ContentProvider机制.分享给大家供大家参考,具体如下: 一般而言,android操作系统的应用程序所建立的数据只允许自己使用,应用程序彼此间无法借助公用存储器来共享数据,android系统提供了一个机制,即内容提供器(ContentProvider),来公开自己私有的数据到数据内容器,通过该机制,可以供其他应用程序来读取自己内部的数据,当然也可以访问其他应用程序的数据.通常,内容提供器背后都有SQLite数据库的支持,用以存储内容提供内部数据

  • Android数据持久化之读写SD卡中内容的方法详解

    本文实例讲述了Android数据持久化之读写SD卡中内容的方法.分享给大家供大家参考,具体如下: 前面文章里讲的那三个方法:openFileOutput .openFileInput 虽然都能通过流对象OutputStream和InputStream可以处理任意文件中的数据,但与 SharedPreferences 一样,只能在手机内存的指定目录下建立文件,因此,在实际的开发使用中有很大的局限性,那么在这一节中,我们来看一个比较高级的方法来实现数据的持久化--读写SD卡上的内容. --读取ass

  • Android数据持久化之Preferences机制详解

    本文实例讲述了Android数据持久化之Preferences机制.分享给大家供大家参考,具体如下: 在Android中,实现数据持久化有五种方式:Preferences,文件File,I/O操作.SQLite数据库,ContentProvider组件. 下面逐个做一简单的介绍: 一.Preferences的介绍: Preferences是一种轻量级的数据存储机制,他将一些简单的数据类型的数据,包括boolean类型,int类型,float类型,long类型以及String类型的数据,以键值对的

  • Android数据存储之SQLite使用

    SQLite是一款开源的.嵌入式关系型数据库,第一个版本Alpha发布于2000年.SQLite在便携性.易用性.紧凑性.高效性和可靠性方面有着突出的表现. 在Android中创建的SQLite数据库存储在:/data/data/<包名>/databases/目录下. 主要特点: -轻量级 -独立性,没有不依赖,无需安装 -跨平台,支持众多操作系统 -支持高达2TB大小的数据库 -每个数据库以单个文件的形式存在 -以B-Tree的数据结构形式存储在硬盘 SQLite的数据类型: SQLite支

  • Android数据持久化之I/O操作详解

    本文实例讲述了Android数据持久化之I/O操作.分享给大家供大家参考,具体如下: 前面文章里我们简单的介绍了File的操作,这一节来说说使用android平台自带对象实现文件的基本操作 主要的两个类:openFileOutput(写)和openFileInput(读) 向文件中写如数据代码如下: //向文件写入内容 try { OutputStream os = openFileOutput("file-io.txt", Context.MODE_PRIVATE); String

随机推荐