因为前面提到xml存储更改文件很麻烦的缘故,最终还是选择了使用数据库存储
一试才觉十分的方便,速度也快
上源码:
- public class DBHelper extends SQLiteOpenHelper{
- private final static String DATABASE_NAME="fanliao_db";
- private final static int DATABASE_VERSION=1;
- private final static String TABLE_NAME="fanliao_chat";
- public final static String CHAT_ID="_id";
- public final static String CHAT_Name="chatname";
- public final static String CHAT_Info="chatinfo";
- public final static String CHAT_Time="chattime";
- public DBHelper(Context context)
- {
- super(context, DATABASE_NAME,null, DATABASE_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- //CREATE TABLE fanliao_chat( _id INTEGER PRIMARY KEY AUTOINCREMENT,
- // chatname TEXT, chattime TEXT, chatinfo TEXT);
- String sql="CREATE TABLE "+TABLE_NAME+"("+CHAT_ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"
- +CHAT_Name+" TEXT, "+CHAT_Time+" TEXT, "+CHAT_Info+" TEXT);";
- db.execSQL(sql);
- System.out.println(sql);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- String sql=" DROP TABLE IF EXISTS "+TABLE_NAME;
- db.execSQL(sql);
- onCreate(db);
- System.out.println(sql);
- }
- public Cursor select()
- {
- SQLiteDatabase db=this.getReadableDatabase();
- Cursor cursor=db.query(TABLE_NAME, null, null, null, null, null, " _id asc");
- return cursor;
- }
- public long insert(String chatname, String chattime, String chatinfo)
- {
- SQLiteDatabase db=this.getWritableDatabase();
- ContentValues cv=new ContentValues();
- cv.put(CHAT_Name, chatname);
- cv.put(CHAT_Time, chattime);
- cv.put(CHAT_Info, chatinfo);
- long row=db.insert(TABLE_NAME, null, cv);
- return row;
- }
- public void delete(int id)
- {
- SQLiteDatabase db=this.getWritableDatabase();
- String where=CHAT_ID+"=?";
- String[] whereValue={Integer.toString(id)};
- db.delete(TABLE_NAME, where, whereValue);
- }
- public void update(int id,String chatname,String chattime, String chatinfo)
- {
- SQLiteDatabase db=this.getWritableDatabase();
- String where=CHAT_ID+"=?";
- String[] whereValue={Integer.toString(id)};
- ContentValues cv=new ContentValues();
- cv.put(CHAT_Name, chatname);
- cv.put(CHAT_Time, chattime);
- cv.put(CHAT_Info, chatinfo);
- db.update(TABLE_NAME, cv, where, whereValue);
- }
- public void delall(){
- SQLiteDatabase db=this.getReadableDatabase();
- String sql=" DROP TABLE IF EXISTS "+TABLE_NAME;
- db.execSQL(sql);
- onCreate(db);
- }
- }
用后才觉得经常修改的数据本就应用数据库的,
形如“聊天记录”这种虽没有十分复杂的存储结构,也是适宜存在表中,
而xml大概多是用以传输数据或存储少量不常用改动的数据把~