溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Android中SQLiteOpenHelper如何使用

發(fā)布時(shí)間:2021-06-26 16:01:01 來(lái)源:億速云 閱讀:160 作者:Leah 欄目:移動(dòng)開(kāi)發(fā)

本篇文章給大家分享的是有關(guān)Android中SQLiteOpenHelper如何使用,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

1.SQLiteOpenHelper

SQliteOpenHelper是一個(gè)抽象類(lèi),來(lái)管理數(shù)據(jù)庫(kù)的創(chuàng)建和版本的管理。要使用它必須實(shí)現(xiàn)它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法

onCreate:當(dāng)數(shù)據(jù)庫(kù)***次被建立的時(shí)候被執(zhí)行,例如創(chuàng)建表,初始化數(shù)據(jù)等。

onUpgrade:當(dāng)數(shù)據(jù)庫(kù)需要被更新的時(shí)候執(zhí)行,例如刪除久表,創(chuàng)建新表。

2.實(shí)現(xiàn)代碼

package xqh.utils;      import android.content.Context;   import android.database.sqlite.SQLiteDatabase;   import android.database.sqlite.SQLiteOpenHelper;   import android.database.sqlite.SQLiteDatabase.CursorFactory;      public class DBHelper extends SQLiteOpenHelper {          //數(shù)據(jù)庫(kù)版本       private static final int VERSION = 1;       //新建一個(gè)表       String sql = "create table if not exists TestUsers"+       "(id int primary key,name varchar,sex varchar)";              public DBHelper(Context context, String name, CursorFactory factory,               int version) {           super(context, name, factory, version);       }          public DBHelper(Context context,String name,int version){           this(context,name,null,version);       }              public DBHelper(Context context,String name){           this(context,name,VERSION);       }              @Override       public void onCreate(SQLiteDatabase db) {           db.execSQL(sql);       }          @Override       public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {                  }          }

3.SQLite的使用

Android提供了一個(gè)名為SQLiteDatabase的類(lèi),它封裝了一些操作數(shù)據(jù)庫(kù)的API。使用它能實(shí)現(xiàn)基本的CRUD操作,通過(guò)getWritableDatabase()和getReadableDatabase()可以獲取數(shù)據(jù)庫(kù)實(shí)例。

4.實(shí)現(xiàn)代碼

package xqh.sqlite;      import xqh.utils.DBHelper;   import android.app.Activity;   import android.database.SQLException;   import android.database.sqlite.SQLiteDatabase;   import android.os.Bundle;   import android.widget.Button;   import android.util.Log;   import android.view.View;   import android.view.View.OnClickListener;;      public class TestSQLite extends Activity {          Button textBtn = null;       Button btnCreateDb = null;       Button btnCreateTb = null;       Button btnInsert = null;       Button btnUpdate = null;       Button btnDelete = null;       DBHelper dbHelper = null;       SQLiteDatabase db = null;              @Override       protected void onCreate(Bundle savedInstanceState) {           // TODO Auto-generated method stub           super.onCreate(savedInstanceState);           setContentView(R.layout.sqlitetest);                      OpenDb();                      textBtn = (Button)findViewById(R.id.btnHeader);           textBtn.setFocusable(true);              //        btnCreateDb = (Button)findViewById(R.id.btnCreateDb);   //        btnCreateDb.setOnClickListener(createDbListener);   //           //        btnCreateTb = (Button)findViewById(R.id.btnCreateTb);   //        btnCreateTb.setOnClickListener(createTbListener);                      btnInsert = (Button)findViewById(R.id.btnInsert);           btnInsert.setOnClickListener(insertTbListener);                      btnUpdate = (Button)findViewById(R.id.btnUpdate);           btnUpdate.setOnClickListener(updateTbListener);                      btnDelete = (Button)findViewById(R.id.btnDelete);           btnDelete.setOnClickListener(deleteTbListener);          }              public OnClickListener deleteTbListener = new OnClickListener() {           public void onClick(View v) {               DeleteTb();           }       };              public OnClickListener updateTbListener = new OnClickListener() {           public void onClick(View v) {               UpdateTb();           }       };              public OnClickListener insertTbListener = new OnClickListener() {           public void onClick(View v) {               InsertTb();           }       };          //    public OnClickListener createDbListener = new OnClickListener() {   //        public void onClick(View v) {   //            CreateDatabase("TestDb01");   //        }   //    };      //    public OnClickListener createTbListener = new OnClickListener() {   //        public void onClick(View v) {   //            CreateTable();   //        }   //    };          //    /**   //     * 新建一個(gè)數(shù)據(jù)庫(kù)   //     * @param dbName   //     * @return   //     */   //    public SQLiteDatabase CreateDatabase(String dbName){   //        dbHelper = new DBHelper(this, dbName);   //        return dbHelper.getWritableDatabase();   //    }              /**       * 新建一個(gè)表       * @param db       */       public void CreateTable(){           db = dbHelper.getWritableDatabase();           String sql = "create table if not exists TestUsers"+                           "(id int primary key,name varchar,sex varchar)";           try {               db.execSQL(sql);           } catch (SQLException e) {               Log.i("err", "create table failed");           }       }              /**       * 插入數(shù)據(jù)       */       public void InsertTb(){           db = dbHelper.getWritableDatabase();           String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";           try {               db.execSQL(sql);           } catch (SQLException e) {               Log.i("err", "insert failed");           }       }              /**       * 更新數(shù)據(jù)       */       public void UpdateTb() {           db = dbHelper.getWritableDatabase();           String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";           try {               db.execSQL(sql);           } catch (SQLException e) {               Log.i("err", "update failed");           }       }              /**       * 刪除數(shù)據(jù)       */       public void DeleteTb(){           db = dbHelper.getWritableDatabase();           String sql = "delete from TestUsers where id = 2";           try {               db.execSQL(sql);           } catch (SQLException e) {               Log.i("err", "delete failed");           }       }              /**       * 打開(kāi)數(shù)據(jù)庫(kù)       */       public void OpenDb(){           dbHelper = new DBHelper(this, "TestDb01");           db = dbHelper.getWritableDatabase();       }              /**       * 關(guān)閉數(shù)據(jù)庫(kù)       */       public void CloseDb(){           dbHelper.close();       }              @Override       protected void onDestroy() {           super.onDestroy();           if(db!=null){               db.close();           }           if(dbHelper!=null){               dbHelper.close();           }       }          }

以上就是Android中SQLiteOpenHelper如何使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI