Android---SQLite數據庫的使用方法


SQLite是輕量級的、嵌入式的、關系型數據庫,目前已經在iPhone、Android等手機系統中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。SQLite數據庫對SQL規范的支持很全面,它支持大多數SQL標准,同時摒棄了一些復雜的功能,添加了一些自身的特性,下圖是SQLite所支持的SQL語句類型:

 

下圖是SQLite所定義的數據類型:

SQLite也支持SQL標准類型,VARCHAR、CHAR、BIGINT等。

創建數據庫

Android 不自動提供數據庫。在 Android 應用程序中使用 SQLite,必須自己創建數據庫,然后創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個數據庫,只要繼承 SQLiteOpenHelper 類,就可以創建數據庫。繼承了SQLiteOpenHelper的子類,必須實現三個方法:

1、構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),數據庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的數據庫模型版本的整數。

2、onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。

3、onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣可以清楚如何把一個數據庫從舊的模型轉變到新的模型。

如下代碼:

class databaseAdapter extends SQLiteOpenHelper{

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

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

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

還可以使用如下方法創建數據庫:

1、Context.createDatabase(String name,int vision,int mode,CursorFactory factory);//創建一個新的數據庫並返回一個SQLiteDatabase對象

2、SQLiteDatabase mydb = SQLiteDatabase.create(new CursorFactory() {
  @Override
  public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
    String editTable, SQLiteQuery query) {

    return null;
  }
});

3、SQLiteDatabase db = this.openOrCreateDatabase("mydb.db", MODE_PRIVATE, new CursorFactory() {
  @Override
  public Cursor newCursor(SQLiteDatabase db, SQLiteCursorDriver masterQuery,
    String editTable, SQLiteQuery query) {
      // TODO Auto-generated method stub
      return null;
  }
});

刪除數據庫

Context.deleteDatabase(String name);//刪除指定名字的數據庫

打開數據庫

Context.openDatabase(String basename,CursorFactory factory);//打開一個存在的數據庫,並返回SQLiteDatabase對象

非查詢SQL指令

SQLiteDatabase.execSQLite(String sql);//可以用來執行非查詢的SQL指令,這些指令執行后沒有結果返回

查詢SQL指令,游標cursors的使用

Cursor cursor = mydb.rawQuery(String sql,String[] selectionArg);//第一個參數為查詢語句,第二個參數為查詢語句中的占位符,若沒有占位符,則第二個參數為null

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM