Android 數據庫操作 創建 添加 刪除 查詢

jopen 12年前發布 | 68K 次閱讀 Android Android開發 移動開發

第一步創建數據庫工具類:


import java.util.ArrayList;
import java.util.List;

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

public class DBHelper {

DBConnection helper;

public DBHelper(Context ctx) {
    helper = new DBConnection(ctx);
}

public DBHelper() {
}

public void add(ContentValues values) {

    SQLiteDatabase db = helper.getWritableDatabase();
    db.insert(UserSchema.TABLE_NAME, null, values);
    db.close();

}

public void DropTable(String TB_NAME) {
    try {

        SQLiteDatabase db = helper.getWritableDatabase();
        String sql = "DROP TABLE " + TB_NAME;
        db.execSQL(sql);
    } catch (Exception ex) {

    }
}

public void DropDatabase(Context ctx, String DATABASE_NAME) {
    try {
        ctx.deleteDatabase(DATABASE_NAME);
    } catch (Exception ex) {

    }
}

public void update(ContentValues values, String where, String[] whereArgs) {

    SQLiteDatabase db = helper.getWritableDatabase();
    db.update(UserSchema.TABLE_NAME, values, where, whereArgs);
    db.close();
}

public void delete(String where, String[] whereArgs) {

    SQLiteDatabase db = helper.getWritableDatabase();
    db.delete(UserSchema.TABLE_NAME, where, whereArgs);
    db.close();
}

public void delDB(String DBName) {

    SQLiteDatabase db = helper.getWritableDatabase();
    db.execSQL("DROP Database " + DBName);
    db.close();
}

public List query(String where, String[] whereArgs, String orderBy,
        String limit) {

    try {
        final SQLiteDatabase db = helper.getReadableDatabase();
        Cursor c = null;
        c = db.query(UserSchema.TABLE_NAME, null, where, whereArgs, null,
                null, orderBy, limit);
        List lst = new ArrayList();

        while (c != null && c.moveToNext()) {
            CItem item = new CItem();
            item.setID(c.getString(c.getColumnIndex("m_key")));
            item.setValue(c.getString(c.getColumnIndex("m_value")));
            lst.add(item);
        }
        if (c != null)c.close();
        return lst;
    } catch (Exception e) {
        // TODO: handle exception
    }

    return null;

}

public interface UserSchema {

    String TABLE_NAME = "movement";
    String ID = "m_id";
    String TYPE = "m_type";
    String Key = "m_key";
    String Value = "m_value";

}

public static class DBConnection extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "SP.db";
    private static final int DATABASE_VERSION = 1;

    private DBConnection(Context ctx) {
        super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        String create_sql = "CREATE TABLE movement(m_id integer primary key autoincrement,m_type varchar(10),"
                + "m_key varchar(20),m_value varchar(100),m_order integer)";
        db.execSQL(create_sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        // String alter_sql = "ALTER TABLE movement";
        // db.execSQL(alter_sql);

    }

}

}

使用數據庫如下代碼: public DBHelper getDb() { if (db == null) db = new DBHelper(this); return db; }

添加:

ContentValues cv = new ContentValues(); cv.put("m_type", type); cv.put("m_key", key); cv.put("m_value", value); getDb().add(cv);

查詢:

List lst = getDb().query("m_type=?", new String[] { cmd }, null, null); </pre>

</p>



創建后的數據庫在

cd datat/data/當前項目包名/databases

Android 數據庫操作 創建 添加 刪除 查詢

</citem></citem>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!