建立資料庫的表格使用SQL 的「CREATE TABLE」指令
指令中需要指定表格的名稱,還有這個表格用來儲存每一筆資料中的欄位(Column)。這些需要的表格欄位可以對應到主要類別中的欄位變數,不過SQLite 資料庫基本的資料型態只有下面這幾種,使用它們來決定表格欄位可以儲存的資料型態:
- INTEGER – 整數,對應Java 的byte、short、int 和long。
- REAL – 小數,對應Java 的float 和double。
- TEXT – 字串,對應Java 的String。
範例:
下列為使用範例,把sql語法都寫在function裡面,呼叫時就只需要傳入要刪除的欄位值,
使用完db時都要記得close()
package com.fengjian.test; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class SQLitehomedata extends SQLiteOpenHelper { String tablename; //String dbname="dbCustomers"; Context iv_context = null; public SQLitehomedata(Context p_context,String s,String e) { super(p_context, e, null, 1); //e = dbName //s = tableName iv_context = p_context; tablename=s; } public void onCreate(SQLiteDatabase p_db) { String l_str="CREATE TABLE "+tablename+"("; l_str+=" _id INTEGER PRIMARY KEY ,"; l_str+=" fId TEXT NOT NULL,";//pmane l_str+=" fcont TEXT NOT NULL,"; l_str+=" ftime TEXT NOT NULL,"; l_str+=" fist_in_orNot TEXT NOT NULL,";//use to record is first in or not , 0 is first , other not l_str+=" image TEXT NOT NULL)";//5 p_db.execSQL(l_str); } public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } //============insert,update,delete,getAll================ public long insert(String p_strTableName, ContentValues p_values){ return getWritableDatabase().insert(p_strTableName,null,p_values); } public long update(String p_strTableName, ContentValues p_values, String p_strId){ return getWritableDatabase().update(p_strTableName, p_values, "fId = '"+p_strId+"'", null); } public long update2(String p_strTableName, ContentValues p_values, String p_strId){ return getWritableDatabase().update(p_strTableName, p_values, "fcont = '"+p_strId+"'", null); } public long update3(String p_strTableName, ContentValues p_values, String p_strId){ return getWritableDatabase().update(p_strTableName, p_values, "ftime = '"+p_strId+"'", null); } public long deleteTime(String p_strTableName,String p_strId){ return getWritableDatabase().delete( p_strTableName, "ftime = '"+p_strId+"'", null); } public long delete(String p_strTableName,String p_strId){ return getWritableDatabase().delete( p_strTableName, "fId = '"+p_strId+"'", null); } public Cursor getAllContacts(String p_strTableName){ return getWritableDatabase().query( p_strTableName, new String[]{"_id","fId","fcont","ftime","fist_in_orNot","image"},null, null, null, null,null); } }
下列為使用範例,把sql語法都寫在function裡面,呼叫時就只需要傳入要刪除的欄位值,
使用完db時都要記得close()
SQLitehomedata l_manager = new SQLitehomedata(this,"homepage","homepage"); ContentValues l_values = new ContentValues(); l_values.put("fId", ""); l_values.put("fcont","111"); l_values.put("ftime","time"); l_values.put("fist_in_orNot", "time")); l_values.put("image", "image")); l_manager.insert("homepage", l_values); //delete l_manager.deleteTime("homepage", "time"); l_manager.close();
沒有留言:
張貼留言