Android SQLite 抽象出CRUD操作工具类
来源:互联网 发布:女寝还魂知乎 编辑:程序博客网 时间:2024/05/18 03:45
1, 定义统一的Dao接口
public interface IDao<T> {public abstract T getSingleById(int id);public abstract List<T> getAll();public abstract boolean update(T video);public abstract int deleteByIds(Collection<Integer> ids);public abstract boolean delete(T video);public abstract boolean add(T video);public int updateBySQL(String statement, String... arguments);public List<T> getListByFieldAndOrderBy(Map<String, Object> fieldValues,Map<String, Boolean> orderBy);}
public abstract class AbstractDao<T> implements IDao<T> {private Dao<T, Integer> dao;public AbstractDao(Context context, Class<T> clazz) {try {dao = DBHelp.getInstance(context).getDao(clazz);} catch (SQLException e) {e.printStackTrace();}}@Overridepublic T getSingleById(int id) {if (dao == null)return null;try {return dao.queryForId(id);} catch (SQLException e) {e.printStackTrace();}return null;}@Overridepublic List<T> getListByFieldAndOrderBy(Map<String, Object> fieldValues,Map<String, Boolean> orderBy) {if (dao == null)return null;try {QueryBuilder<T, Integer> qb = dao.queryBuilder();if (orderBy != null) {for (Map.Entry<String, Boolean> entry : orderBy.entrySet()) {qb.orderBy(entry.getKey(), entry.getValue());}}if (fieldValues != null) {Where<T, Integer> where = qb.where();for (Map.Entry<String, Object> entry : fieldValues.entrySet()) {where.eq(entry.getKey(), entry.getValue());}}return qb.query();// return dao.queryForFieldValuesArgs(fieldValues);} catch (SQLException e) {e.printStackTrace();}return null;}@Overridepublic List<T> getAll() {if (dao == null)return null;try {return dao.queryForAll();} catch (SQLException e) {e.printStackTrace();}return null;}public List<T> getAllOrderBy(String columnName, boolean ascending) {if (dao == null)return null;try {return dao.queryBuilder().orderBy(columnName, ascending).query();} catch (SQLException e) {e.printStackTrace();}return null;}@Overridepublic boolean update(T t) {if (dao == null)return false;try {return dao.update(t) == 1;} catch (SQLException e) {e.printStackTrace();}return false;}public int updateBySQL(String statement, String... arguments) {if (dao == null)return 0;try {return dao.updateRaw(statement, arguments);} catch (SQLException e) {e.printStackTrace();}return 0;}@Overridepublic int deleteByIds(Collection<Integer> ids) {if (dao == null)return 0;try {return dao.deleteIds(ids);} catch (SQLException e) {e.printStackTrace();}return 0;}public boolean deleteAll(String table) {if (dao == null)return false;try {return dao.executeRaw("DELETE FROM " + table) > 0;} catch (SQLException e) {e.printStackTrace();}return false;}@Overridepublic boolean delete(T video) {if (dao == null)return false;try {return dao.delete(video) == 1;} catch (SQLException e) {e.printStackTrace();}return false;}@Overridepublic boolean add(T t) {if (dao == null)return false;try {return dao.createIfNotExists(t) != null;// return dao.create(video) == 1;} catch (SQLException e) {e.printStackTrace();}return false;}}3, 在逻辑bean里使用很简单:
public class QuestionDao extends AbstractDao<Question> {public QuestionDao(Context context) {super(context, Question.class);}}
4, 使用的时候就很简单了:
QuestionDao dao = new QuestionDao();dao.add(T);...这样就可以很简单的做CRUD操作了....
0 0
- Android SQLite 抽象出CRUD操作工具类
- Android中SQLite的简单crud操作
- android数据库sqlite的CRUD操作
- Android访问SQlite实现基本CRUD操作
- android greenDao SQLite数据库操作工具类
- android SQLite的CRUD
- Android-SQLite的CRUD
- Android sqlite数据库操作通用框架AHibernate(二)-CRUD ...
- Android Sqlite+反射 实现CRUD
- android sqlite CRUD 查询 事务
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo
- 学习笔记:Android SQLite,并实现SQLite基本CRUD操作的Demo
- Android sqlite工具类
- android greenDao SQLite数据库操作工具类使用
- android greenDao SQLite数据库操作工具类使用
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例
- oracle备份数据库资料
- RandomAccessFile的基本操作
- Emacs eshell的好处
- 跟着龙哥学JavaWeb(JSP 静态包含&动态包含)
- python核心编练习答案
- Android SQLite 抽象出CRUD操作工具类
- 【SSH】Hibernate:配置文件解析
- 看C开源源码的好网站
- Unable to instantiate applicationcom.android.tools.fd.runtime.BootstrapApplication
- notepad++搜索所有汉字
- 开源项目——小Q聊天机器人V1.2
- ubuntu16.04安装KDE
- Javascript正则表达式
- Java的finally语句到底是在return之前还是之后执行?