編輯:關於Android編程
SQLite是在安卓中經常用到的數據存儲方式,一般用來存儲在本地的臨時數據。應用版本升級的時候,數據庫版本也要跟著升級。
public class DBHelper extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
String sql = create table if not exists my_product+(id integer primary key, category varchar, biaoqian varchar, +
bgState integer, bqState Integer);
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public DBHelper(Context context, String name, CursorFactory factory,
int version, DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVision, int newVision) {
Log.i(Allen, 執行數據庫升級);
// TODO Auto-generated method stub
db.delete(my_product,null,null);
db.execSQL(sql);
}
}
上面的代碼是一個簡單的sqlite的使用,databaseHelper得繼承類SQLiteOpenHelper,一般至少要實現兩個方法,一個是onCreate方法,在創建databaseHelper對象的時候調用。上面的sql語句是穿件一個數據庫表。另一個要實現的方法是onUpgrade方法,該方法在版本號改變的時候調用。上面的意思是刪除原來的數據庫表,重新創建一個表。
在Activity中使用的時候,
private static String DATABASE_NAME = shipin.db;
private static String TABLE_NAME = my_product;
DBHelper dbHelper = new DBHelper(this,DATABASE_NAME,null,2);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query(TABLE_NAME, new String[] {
biaoqian,bgState,bqState}, category = ?, new String[] {cap}, null, null, null);
// 將光標移動到下一行,從而判斷該結果集是否還有下一條數據,如果有則返回true,沒有則返回false
while (cursor.moveToNext()) {
biaoqian = cursor.getString(cursor.getColumnIndex(biaoqian));//標簽文字
bgState = cursor.getInt(cursor.getColumnIndex(bgState)); //背景狀態,是否使用過
bqState = cursor.getInt(cursor.getColumnIndex(bqState));//標簽狀態,用來區分標簽背景顏色
list_biaoqian.add(biaoqian);
listImageState.add(bgState);
listBg.add(bqState);
}
以上是從數據庫中查詢數據的方法,把符合要求的數據添加到list中。
Cursor cursor = db.query(TABLE_NAME, new String[] {
biaoqian,bgState,bqState}, category = ?, new String[] {cap}, null, null, null);
這一句是具體的查詢語句,TABLE_NAME是數據庫表名,new String[]是要查詢的那幾列,category=?是查詢條件,相當於where,後面的new String[]是具體的查詢條件,該語句查詢的是category=cap的biaoqian、bgState、bqState的值。
DBHelper dbHelper = new DBHelper(this,DATABASE_NAME,null,2);這一句中的參數2,
就是數據庫版本號,創建數據庫表的時候默認數據看版本是1,該出的參數為2,版本升級,
此時就會執行onUpgrade方法。要注意的一點是,數據庫的版本號只能升或者不變,不能降。
否則會報錯。
ps:工作中就是因為應用版本升級了,數據庫版本沒有升級,而表結構改變了,
導致升級後的應用不能用。
內容概要示例演示和基本介紹啟用Action Bar在Action Bar上添加按鈕自定義Action Bar樣式自動隱藏Action BarAction Provider
本文實例講述了Android自定義ActionBar的實現方法。分享給大家供大家參考。具體實現方法如下:Android 3.0及以上已經有了ActionBar的API,可
概述:如果你目前還是一名學生或是沒有在應用商店中上傳過應用,恐怕對此的感受不深。而在企業中對Java代碼的混淆卻是一步很重要的步驟,從安全的角度來說,代碼混淆,防止居心不
完成效果:選擇選項後退出,界面記住選擇選項。1.利用SharePreferences方法記住選擇的選項主布局: