public boolean update(Object obj, String idValue) { String tableName = SqlGetter.getTableName(obj.getClass()); String idName = SqlGetter.getPrimaryKeyName(obj.getClass()); Map<String, Object> map = ClassHelper.getFieldValueMap(obj, false); ContentValues cv = new ContentValues(); for (Map.Entry<String, Object> en : map.entrySet()) cv.put(en.getKey(), en.getValue().toString()); int c = db.update(tableName, cv, idName + " = '" + idValue + "'", null); return c > 0; }
public List<Object> getByWhere(Class<?> clz, String where) { final Cursor cur = db.rawQuery(SqlGetter.getGetSql(clz, where), null); ArrayList<Object> list = new ArrayList<Object>(0); if (cur != null && cur.getCount() > 0) while (cur.moveToNext()) { try { final Object ins = Class.forName(clz.getName()).newInstance(); ClassHelper.callUsefullFields( ins.getClass(), new FieldCallback() { // id public void call(Field f) { setFieldValue(f, ins, cur.getString(cur.getColumnIndex(f.getName()))); } }, new FieldCallback() { // 普通 public void call(Field f) { setFieldValue(f, ins, cur.getString(cur.getColumnIndex(f.getName()))); } }); list.add(ins); } catch (Exception e) { } } closeCursor(cur); return list; }
public boolean save(Object obj) { Map<String, Object> map = ClassHelper.getFieldValueMap(obj, false); ContentValues cv = new ContentValues(); for (Map.Entry<String, Object> en : map.entrySet()) cv.put(en.getKey(), en.getValue().toString()); long c = db.insert(SqlGetter.getTableName(obj.getClass()), null, cv); return c > 0; }
/** * 打开数据库 * * @param dbName 数据库名称 * @param clz 对应的实体类的class * @return */ public static DBManager open(String dbName, Class<?> clz) { DBManager dbm = new DBManager(); { SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(new File(dbDir, dbName + ".db"), null); db.execSQL(SqlGetter.getCreateTable(clz)); dbm.db = db; } return dbm; }
public boolean deleteByWhere(Class<?> clz, String where) { String table = SqlGetter.getTableName(clz); int c = db.delete(table, where, null); return c > 0; }
public boolean deleteById(Class<?> clz, String id) { String table = SqlGetter.getTableName(clz); String idName = SqlGetter.getPrimaryKeyName(clz); int c = db.delete(table, idName + " = '" + id + "'", null); return c > 0; }