public class DBHelper extends SQLiteOpenHelper { private final static String DATABASE_NAME = "price_app.db"; private final static int DATABASE_VERSION = 1; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { //需要建立的table SQL語法 String createTable = "CREATE TABLE IF NOT EXISTS GeoStatus " + "(_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," + " CountiesUpdateTime nvarchar(50) ,MRTUpdateTime nvarchar(50) )"; db.execSQL(createTable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //oldVersion=舊的資料庫版本;newVersion=新的資料庫版本 //修改DATABASE_VERSION來改變 //資料庫版本異動 ex 修改某table欄位時 if (newVersion > oldVersion) { db.beginTransaction();//建立交易 boolean success = false;//判斷參數 //由之前不用的版本,可做不同的動作 switch (oldVersion) { case 1: db.execSQL("ALTER TABLE GeoStatus ADD COLUMN reminder integer DEFAULT 0"); success = true; break; } if (success) { //正確交易才成功 db.setTransactionSuccessful(); } db.endTransaction(); } else { onCreate(db); } }
Insert / Update / Delete
DBHelper dbHelper = new DBHelper(conText); SQLiteDatabase db = dbHelper.getWritableDatabase(); //insert ContentValues cv = new ContentValues(); //cv.put(column ,value); cv.put("city_code", "0000"); cv.put("district_code", "1"); //db.insert(table name ,nullColumnHack ,ContentValues values) db.insert("District", null, cv); //update ContentValues cv = new ContentValues(); //cv.put(column ,value); cv.put("city_name", "新北市"); //db.update(table name ,ContentValues values, whereClause ,whereArgs[]) db.update("City", cv, "city_code = '0000'", null); //delete //db.update(table name , whereClause ,whereArgs[]) db.delete("City", "city_code = '0000'", null); db.close();
Query
DBHelper dbHelper = new DBHelper(conText); SQLiteDatabase db = dbHelper.getReadableDatabase(); String SQL = "select city_code ,city_name from City order by sort asc"; Cursor cursor = db.rawQuery(SQL, null); while (cursor.moveToNext()) { String cityCode = cursor.getString(0); //第一個欄位 //或是 cursor.getString(cursor.getColumnIndex("city_code")); } cursor.close(); db.close();