国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android數(shù)據(jù)持久化之SQLite數(shù)據(jù)庫用法分析

2019-10-23 18:29:37
字體:
供稿:網(wǎng)友

本文實例講述了Android數(shù)據(jù)持久化之SQLite數(shù)據(jù)庫用法。分享給大家供大家參考,具體如下:

這一節(jié)我將總結(jié)一下android中的另一種數(shù)據(jù)存儲——SQLite 的相關知識點

SQLite數(shù)據(jù)庫是android系統(tǒng)自帶的,主要用到的類包括SQLiteOpenHelperSQLiteDatabase

1、SQLiteOpenHelper:創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫版本管理的輔助類,該類是一個抽象類,所以我們一般都有一個子類SQLiteOpenHelper,需要繼承實現(xiàn)的方法主要有onCreate()、onUpgrade()、getWritableDatabase()等。getWritableDatabase()方法返回的是SQLiteDatabase對象實例,如果數(shù)據(jù)庫尚未創(chuàng)建,則會自動調(diào)用onCreate()方法來創(chuàng)建數(shù)據(jù)庫,所以一些建表和數(shù)據(jù)初始化操作,應該放在onCreate()方法里 。

2、SQLiteDatabase:操作SQLite數(shù)據(jù)庫的類,可以進行SQL語句,對數(shù)據(jù)庫進行增、刪、改、查的操作,該對象已經(jīng)對基本的數(shù)據(jù)庫操作進行了封裝。可以調(diào)用insert()、delete()、executeSQL()等方法,進行實際的數(shù)據(jù)庫操作 ,這個類相當于JDBC中的Connection,也類似Hibernate中的Session,或者Spring中的HibernateTemplate;也可以進行transaction的控制。很多對數(shù)據(jù)庫的操作最終都是通過SQLiteDatabase實例來調(diào)用執(zhí)行的。

注意:數(shù)據(jù)庫對于一個應用時私有的,并且在一個應用當中,數(shù)據(jù)庫的名字也是唯一的。

3、Corsor:游標。通過Cursor可以對于從數(shù)據(jù)庫中查詢出來的結(jié)果集進行隨機的讀寫訪問。對于數(shù)據(jù)庫的查詢結(jié)果,一般是由子類SQLiteCursor返回的。

特別注意:開發(fā)的時候一般會對前面兩個類做一下包裝,比如進行簡單的封裝,使得SQLiteDatabase的查詢方法不是返回原始的Cursor類(Cursor相當于JDBC中的ResultSet),而是返回業(yè)務對象等等

實現(xiàn)的代碼如下:

SQLiteOpenHelper類的實現(xiàn):

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類的實現(xiàn):

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);    //創(chuàng)建數(shù)據(jù)庫    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();      }    });    //更新數(shù)據(jù)庫    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();      }    });    //向數(shù)據(jù)庫中的表中插入內(nèi)容    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);      }    });    //更新表的內(nèi)容    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"});      }    });    //查找表的內(nèi)容    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開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 扎兰屯市| 武城县| 仁怀市| 获嘉县| 龙胜| 枣强县| 岳池县| 当阳市| 皋兰县| 甘德县| 牡丹江市| 万全县| 塔河县| 海盐县| 金门县| 株洲市| 海兴县| 若尔盖县| 大新县| 肇州县| 晋宁县| 抚远县| 隆回县| 镇雄县| 安塞县| 安康市| 噶尔县| 吐鲁番市| 沙洋县| 中江县| 运城市| 徐水县| 乌拉特前旗| 会东县| 繁峙县| 二连浩特市| 保德县| 青浦区| 肥东县| 筠连县| 蒙自县|