Android 使用資料庫 SQlite

來源:互聯網
上載者:User
搞Android開發很久了,卻還沒有寫過sqlite 先寫寫基礎的,後面擴充。。。 

 

package com.king.android.db;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**

 * 描述:資料庫。。。
 * 作者:Andy.Liu
 * 時間: 2012-8-2  下午10:37:27
 **/
public class MyDataBaseAdapter {
    
    private static final String TAG = "MyDataBaseAdapter";
    
    private Context mContext = null;
    
    public static final String KEY_ID = "_id";
    
    public static final String KEY_NUM = "num";
    
    public static final String KEY_DATA = "data";
    
    private static final String DB_NAME = "king.db";
    
    private static final String TABLE_KING = "king";

    private static final int DB_VERSION = 1;
    
    
    //建立表的語句
    private static final String CREATE_TAB_KING = null;
    
    //執行open()開啟資料庫,儲存返回的資料庫物件
    private SQLiteDatabase mSQlLiteDatabase = null;
    
    //由SQLiteOpenHelper繼承過來
    private DatabaseHelper mDatabaseHelper = null;
    
            //繼承SQLiteOpenHelper
            private static class DatabaseHelper extends SQLiteOpenHelper{
        
                //建構函式建立資料庫
            public DatabaseHelper(Context context) {
                /**
                 * 當調用getWriteableDatabase(),getReadableDatabase()方法時則建立一個資料庫
                 */
                super(context, DB_NAME, null, DB_VERSION);
                
            }
        
            @Override/*建立資料表*/
            public void onCreate(SQLiteDatabase db) {
                db.execSQL(CREATE_TAB_KING);
            }
        
            @Override//升級資料庫
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                db.execSQL("DROP TABLE IF EXISTS notes");
                onCreate(db);
            }
        }
            //建構函式取得Context
        public MyDataBaseAdapter(Context context){
            this.mContext = context;
        }
        
        //開啟資料庫,返回資料庫物件
        public void open()throws SQLException{
            mDatabaseHelper = new DatabaseHelper(mContext);
            mSQlLiteDatabase = mDatabaseHelper.getWritableDatabase();
        }
        
        //關閉資料庫
        public void close(){
            mDatabaseHelper.close();
        }
        
        //插入一條資料
        public long insertData(int num,String data){
            ContentValues initValues = new ContentValues();
            initValues.put(KEY_NUM, num);
            initValues.put(KEY_DATA, data);
            return mSQlLiteDatabase.insert(TABLE_KING, KEY_ID, initValues);
        }
        
        //刪除一條資料
        public boolean deleteData(long rowId){
            return mSQlLiteDatabase.delete(TABLE_KING, KEY_ID + "="+ rowId, null)>0;
        }
        
        //通過Cursor查詢所有資料
        public Cursor fetchAllData(){
            return mSQlLiteDatabase.query(TABLE_KING, new String[]{KEY_ID,KEY_NUM,KEY_DATA}, null, null, null, null, null);
        }
        
        //查詢指定資料
        public Cursor fetchData(long rowId){
            Cursor mCursor = mSQlLiteDatabase.query(true, TABLE_KING,  new String[]{KEY_ID,KEY_NUM,KEY_DATA}, KEY_ID+ "="+rowId, null, null, null,null,null);
            if(null!=mCursor){
                mCursor.moveToFirst();
            }
            return mCursor;
        }
        
        //更新一條資料
        public boolean updateData(long rowId,int num,String data){
            ContentValues args = new ContentValues();
            args.put(KEY_NUM, num);
            args.put(KEY_DATA, data);
            return mSQlLiteDatabase.update(TABLE_KING, args, KEY_ID+ "="+rowId, null)>0;
        }
        
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.