這是一個封裝了對SQLite基本操作的類。
DBHelper類:
public class DBHelper {
public static SQLiteDatabase openOrCreateDatabase(Context context,String dbName){//建立資料庫
SQLiteDatabase db = context.openOrCreateDatabase(dbName,Context.MODE_PRIVATE,null);
return db;
}
public static void createTable(SQLiteDatabase db,String tableName,List<Map<String,String>> list) {//建立資料表
String str = "";
for (int i = ; i < list.size(); i++) {
Map<String, String> map = list.get(i);
str += map.get("DbFieldName") + " ";
if(i == list.size() -){
str += map.get("DbFieldTyple");
}else {
str += map.get("DbFieldTyple") + ",";
}
//DbFieldName表示字段名的key,DbFieldTyple表示字段類型的key
}
db.execSQL("CREATE TABLE " + tableName + " (" + str + ")");
}
public static void executeSQL(SQLiteDatabase db,String sqlStr){//輸入SQL指令操作資料庫
db.execSQL(sqlStr);
}
public static void insertDatas(SQLiteDatabase db,String tableName,List<Map<String,String>> list){//向資料庫中插入資料
ContentValues contentValues = new ContentValues();
for(int i = ; i < list.size(); i++){
Map<String,String> map = list.get(i);
contentValues.put(map.get("DbFieldName"),map.get("DbFieldNote"));
}
//DbFieldName表示字段名的key,DbFieldNote表示字段内容的key
db.insert(tableName, null, contentValues);
}
public static void deleteDatas(SQLiteDatabase db,String tableName,String whereClause,String[] whereArgs){//删除指定資料
db.delete(tableName, whereClause, whereArgs);
}
public static void updateDatas(SQLiteDatabase db,String tableName,List<Map<String,String>>list,String whereClause, String[] whereArgs){//更新資料
ContentValues contentValues = new ContentValues();
for(int i = ; i < list.size(); i++){
Map<String,String> map = list.get(i);
contentValues.put(map.get("DbFieldName"),map.get("DbFieldNote"));
//DbFieldName表示字段名的key,DbFieldNote表示字段内容的key
}
db.update(tableName, contentValues, whereClause, whereArgs);
}
public static Cursor getCursorByQuery(SQLiteDatabase db,String tableName){//傳回整張表的資料集合
Cursor cursor = db.query(tableName,null,null,null,null,null,null);
return cursor;
}
public static Cursor getCursorByRawQuery(SQLiteDatabase db,String sqlStr,String [] array){//傳回指定條件的資料集合
Cursor cursor = db.rawQuery(sqlStr, array);
return cursor;
}
public static boolean tableIsExist(SQLiteDatabase db,String tableName){//判斷表是否已經存在
boolean result = false;
if(tableName == null){
return false;
}
Cursor cursor = null;
try {
String sql = "select count(*) as c from Sqlite_master where type ='table' and name ='"+tableName.trim()+"' ";
cursor = db.rawQuery(sql, null);
if(cursor.moveToNext()){
int count = cursor.getInt();
if(count>){
result = true;
}
}
} catch (Exception e) {
}
return result;
}
}