在Youtube上關注此問題以獲得基本的更好理解:http://www.youtube.com/watch?v=OUoGnvz_Yw4以及Youtube上的其他可用教程。隨着它,你可以注意 - http://www.vogella.com/tutorials/AndroidSQLite/article.html以及。
我在我的一個需求中使用了SQLiteDatabase作爲教程的一部分。它創建了表格,插入以及升級方法供您參考。我相信它會幫助你
StatusData.Java
import winterwell.jtwitter.Status;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
@SuppressWarnings("unused")
public class StatusData {
static final String TAG = "StatusData";
public static final String DB_NAME = "timeline.db";
public static final int DB_VERSION = 1;
public static final String TABLE = "status";
public static final String C_ID = "_id";
public static final String C_CREATED_AT = "created_at";
public static final String C_USER = "user_name";
public static final String C_TEXT = "status_text";
Context context;
DbHelper dbHelper;
SQLiteDatabase db;
public StatusData(Context context) {
this.context = context;
dbHelper = new DbHelper();
}
public void insert(Status status) {
db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(C_ID, status.id.toString());
values.put(C_CREATED_AT, status.createdAt.getTime());
values.put(C_USER, status.user.name);
values.put(C_TEXT, status.text);
db.insert(TABLE, null, values);
db.insertWithOnConflict(TABLE, null, values,
SQLiteDatabase.CONFLICT_IGNORE);
}
class DbHelper extends SQLiteOpenHelper {
public DbHelper() {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = String.format("Create Table : %s "
+ "(%s int Primary Key, " + "%s int, %s text, %s text)",
TABLE, C_ID, C_CREATED_AT, C_USER, C_TEXT);
Log.d(TAG, "Oncreate with SQL : " + sql);
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Usually ALTER the TABLE
db.execSQL("drop if exists " + TABLE);
onCreate(db);
}
}
的事情是,我希望用戶能夠添加新的測量領域和新的單位,所以這就是爲什麼我想在DB的。這可以通過其他方式完成嗎? – guitarzero
不,那麼數據庫是一個好主意:) –