Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android開發入門(十九)數據庫 19.1創建數據庫輔助類

Android開發入門(十九)數據庫 19.1創建數據庫輔助類

編輯:Android開發教程

目前所介紹的方法只是用來存儲一些簡單的數據。如果想要存儲關系型數據,那麼使用數據庫將會更加的 效率。舉個例子,你要存儲學校裡面每一個學生的分數,這種情況下,最好使用數據庫,因為你可以查詢某 個學生的具體分數。而且,使用數據庫能夠保持不同數據之間關系的完整性。

Android使用SQLite數 據庫系統。使用這種數據庫,只有創建它的程序可以使用它,別的程序無法訪問到它。

在接下來的幾 節中,會簡述如何通過編碼在你的程序中創建一個SQLite數據庫。對於Android來說,通過編碼創建的數據庫 的存儲位置是/data/data/<packane_name>

/databases 。

想要處理數據庫的一種良好 的方式就是創建一個數據庫輔助類,這個類中,封裝了所有的數據操作方式。因此,這節中我們來看看如何 創建一個數據庫輔助類DBAdapter,這個類中包含創建,打開,關閉和使用SQLite數據庫。

我們講創 建一個數據庫,名字叫MyDB;包含一張表,名字叫contacts,有3列_id,name和email。

1. 創建一個工程,Databases。

2. 創建一個類,DBAdater。

3. DBAdapter.java中的代碼。

public class DBAdapter {  
    static final String KEY_ROWID = "_id";  
    static final String KEY_NAME = "name";  
    static final String KEY_EMAIL = "email";  
    static final String TAG = "DBAdapter";  
      
    static final String DATABASE_NAME = "MyDB";  
    static final String DATABASE_TABLE = "contacts";  
    static final int DATABASE_VERSION = 2;  
      
    static final String DATABASE_CREATE =  
        "create table contacts (_id integer primary key autoincrement, "
        + "name text not null, email text not null);";  
      
    final Context context;  
      
    DatabaseHelper DBHelper;  
    SQLiteDatabase db;  
          
    public DBAdapter(Context ctx)  
    {  
        this.context = ctx;  
        DBHelper = new DatabaseHelper(context);  
    }  
      
    private static class DatabaseHelper extends SQLiteOpenHelper  
    {  
        DatabaseHelper(Context context)  
        {  
            super(context, DATABASE_NAME, null, DATABASE_VERSION);  
        }  
      
        @Override
        public void onCreate(SQLiteDatabase db)  
        {  
            try {  
                db.execSQL(DATABASE_CREATE);  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
      
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)  
        {  
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");  
            db.execSQL("DROP TABLE IF EXISTS contacts");  
            onCreate(db);  
        }  
    }  
      
    //---opens the database---  
    public DBAdapter open() throws SQLException   
    {  
        db = DBHelper.getWritableDatabase();  
        return this;  
    }  
      
    //---closes the database---  
    public void close()   
    {  
        DBHelper.close();  
    }  
      
    //---insert a contact into the database---  
    public long insertContact(String name, String email)   
    {  
        ContentValues initialValues = new ContentValues();  
        initialValues.put(KEY_NAME, name);  
        initialValues.put(KEY_EMAIL, email);  
        return db.insert(DATABASE_TABLE, null, initialValues);  
    }  
      
    //---deletes a particular contact---  
    public boolean deleteContact(long rowId)   
    {  
        return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;  
    }  
      
    //---retrieves all the contacts---  
    public Cursor getAllContacts()  
    {  
        return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME,  
                KEY_EMAIL}, null, null, null, null, null);  
    }  
      
    //---retrieves a particular contact---  
    public Cursor getContact(long rowId) throws SQLException   
    {  
        Cursor mCursor =  
                db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,  
                KEY_NAME, KEY_EMAIL}, KEY_ROWID + "=" + rowId, null,  
                null, null, null, null);  
        if (mCursor != null) {  
            mCursor.moveToFirst();  
        }  
        return mCursor;  
    }  
      
    //---updates a contact---  
    public boolean updateContact(long rowId, String name, String email)   
    {  
        ContentValues args = new ContentValues();  
        args.put(KEY_NAME, name);  
        args.put(KEY_EMAIL, email);  
        return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;  
    }  
      
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved