1:定義表的結構和名字,我使用以下方法:
public interface Constatnts extends BaseColumns {
public static final String TABLE_NAME = "test";
public static final String TIME = "time";
public static final String TITLE = "title";
}
在這裏,我繼承BaseColumns的目的,是直接定義"_ID"字段
2:定義SQLiteOpenHelper 的子類,來對應一個數據庫,重載必須的onCreate 和 onUpgrade。裏面通過execSQL調用適當的SQL 語句。
@Override
// 這個函數會在第一次執行數據庫操作的時候被調用到。
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + TIME
+ " INTEGER," + TITLE + " TEXT NOT NULL);"); //注意,最好聲明字段類型,以免不必要的麻煩。
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXITS "+ TABLE_NAME);
onCreate(db);
}
3:使用該數據庫。
mydatabase = new Databasehelp(this);
插入數據:
SQLiteDatabase db = mydatabase.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TIME, System.currentTimeMillis());
values.put(TITLE, string);
db.insertOrThrow(TABLE_NAME, null, values);
查詢數據:
SQLiteDatabase db = mydatabase.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, { _ID, TIME, TITLE, }, null, null, null,
null, null);
startManagingCursor(cursor); // 讓activity來管理cursor的生命週期
while (cursor.moveToNext()) {
// Could use getColumnIndexOrThrow() to get indexes
long id = cursor.getLong(0);
long time = cursor.getLong(1);
String title = cursor.getString(2);
...........................................
}
4: 直接管理數據庫
通過adb shell進入:sqlite3 test.db,後面按照標準的sqlites 辦法做。
引用一個好總結:
使用數據庫:sqlite3 db_name
創建表: create table table_name(filed1Name filed1Property,filed2Name filed2Property);
顯示數據庫中的表:.table
顯示錶結構:.schema table_name
刪除表: .drop table table_name // 我沒有找到這個命令,呵呵
退出:.exit
導入數據:將txt文件中的數據到導入到表中, data.txt中每一列用”|”分隔, |兩邊不要空格,文件末尾不要有空行,例如:1|rainkey|tencent
注意:在android 上面執行的時候將text_name.txt存放到databases所在目錄
.import text_name.txt table_name
插入記錄:insert into table_name values(‘key’,’value’);
查找記錄:select * from table_name;
從第三行開始查詢10條記錄:select * from table_name limit 3,10;
刪除記錄:delete from table_name where field1=value;
更新操作:update table_name set name=’rainkey’ where id=1;
另外,如果要重新刷新這個數據的庫的話,我現在的方法是通過adb uninstall整個程序。