因为前面提到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大概多是用以传输数据或存储少量不常用改动的数据把~