本文實例講述了Android數據持久化之SQLite數據庫用法。分享給大家供大家參考,具體如下:
這一節我將總結一下android中的另一種數據存儲――SQLite 的相關知識點
SQLite數據庫是android系統自帶的,主要用到的類包括SQLiteOpenHelper和SQLiteDatabase。
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程序設計有所幫助。
新聞熱點
疑難解答