建立資料庫的表格使用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();
沒有留言:
張貼留言