80,348
社区成员
发帖
与我相关
我的任务
分享
Cursor c = dbhelper.getReadableDatabase().rawQuery(
"select * from ReadCount where domain=?", new String[]{model.getDomain()});
int count = c.getCount();
c.close();
ContentValues cv = new ContentValues();
cv.put("domain", model.getDomain());
cv.put("time", model.getTime());
cv.put("rulecount", model.getRulecount());
if (count > 0) {
String where = "domain = ?";
String[] whereValues = {model.getDomain()};
dbhelper.getWritableDatabase().update("ReadCount", cv, where, whereValues);
} else {
dbhelper.getWritableDatabase().insert("ReadCount", null, cv);
}
public void TransactionUpdrule(List<ReadCountModel> list){
List<ContentValues> insertlist=new ArrayList<ContentValues>();
List<ContentValues> updlist=new ArrayList<ContentValues>();
for(int i=0;i<list.size();i++){
Cursor c = dbhelper.getReadableDatabase().rawQuery(
"select * from ReadCount where domain=?", new String[]{list.get(i).getDomain()});
int count = c.getCount();
c.close();
ContentValues cv = new ContentValues();
cv.put("domain", list.get(i).getDomain());
cv.put("time", list.get(i).getTime());
cv.put("rulecount", list.get(i).getRulecount());
if(count>0){
updlist.add(cv);
}else{
insertlist.add(cv);
}
}
SQLiteDatabase db = dbhelper.getWritableDatabase();
db.beginTransaction(); // 手动设置开始事务
for(ContentValues v:insertlist){
db.insert("ReadCount", null, v);
}
for(ContentValues v:updlist){
String[] whereValues = {v.getAsString("domain")};
db.update("ReadCount", v, "domain = ?", whereValues);
}
db.setTransactionSuccessful(); // 设置事务处理成功,不设置会自动回滚不提交
db.endTransaction(); // 处理完成
db.close();
}
private Context context;
private static ReadDbHelper dbhelper;
//原版
public ReadDbCmd(Context context) {
this.context = context;
// dbhelper = new ReadDbHelper(context, null, null, 9);
dbhelper = getInstance(context);
}
private static ReadDbHelper getInstance(Context context) {
if (dbhelper == null) {
dbhelper = new ReadDbHelper(context, null, null, 9);
}
return dbhelper;
}
public class ReadDbHelper extends SQLiteOpenHelper {
public static final String CREATE_ReadCount = "create TABLE IF NOT EXISTS ReadCount (id INTEGER PRIMARY KEY autoincrement,domain varchar,rulecount INTEGER,count INTEGER,time INTEGER)";
public ReadDbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, "ReadCount", null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_ReadCount);
System.out.println("执行创建s");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS ReadCount");
onCreate(db);
}
}