这是一个封装了对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 = 0; i < list.size(); i++) {
Map<String, String> map = list.get(i);
str += map.get("DbFieldName") + " ";
if(i == list.size() -1){
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 = 0; 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 = 0; 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(0);
if(count>0){
result = true;
}
}
} catch (Exception e) {
}
return result;
}
}