public class DaoHelper{ private DaoSession daoSession; private static DaoHelper instance = new DaoHelper(); public static DaoHelper getInstance() { return instance; } private DaoHelper() { setupDatabase(); } private DaoSession getDaoSession() { return daoSession; } private void setupDatabase() { //创建数据库shop.db DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(MyApplication.getContext(), "shop.db", null); //获取可写数据库 SQLiteDatabase db = helper.getWritableDatabase(); //获取数据库对象 DaoMaster daoMaster = new DaoMaster(db); //获取dao对象管理者 daoSession = daoMaster.newSession(); } /** * 插入一条数据 * @param name */ public void insert(String name){ User user= new User(); user.setName(name); DaoHelper.this.getInstance().getDaoSession().getUserDao().insert(user); } /** * 查询所有数据 */ public <T>List<T> loadAll(Class<T> tClass){ return getInstance().getDaoSession().loadAll(tClass); } /** * 按主键ID查询一条数据 */ public <T,K>T load(Class<T> tClass,K k){ return DaoHelper.this.getInstance().getDaoSession().load(tClass,k); } /** * 根据字段查询一条数据 */ public <T,K>T loadByField(K field){ T t = (T) getInstance().getDaoSession().getUserDao().queryBuilder().where(UserDao.Properties.Name.eq(field)).unique();//需要跟据自己的Dao类修改 return t; } /** * 模糊查询之包含某个特殊字的查询--queryLike方法 * @param field * @param <T> * @param <K> * @return */ public <T,K> List<T> loadListByNotField(K field){ List<T> ts = (List<T>) getInstance().getDaoSession().getUserDao().queryBuilder().where(UserDao.Properties.Name.notEq(field)).list(); return ts; } /** * 模糊查询之包含某个特殊字的查询--queryLike方法 * @param field * @param <T> * @param <K> * @return */ public <T,K> List<T> loadListByField(K field){ List<T> ts = (List<T>) getInstance().getDaoSession().getUserDao().queryBuilder().where(UserDao.Properties.Name.like(field+"%")).list(); return ts; } /** * 清空所有数据 * @param tClass * @param <T> */ public <T>void deleteAll(Class<T> tClass){ getInstance().getDaoSession().getDao(tClass).deleteAll(); } /** * 根据实体类删除一条记录,一般结合查询方法,查询出一条记录之后删除。 * @param t * @param <T> */ public <T>void delete(T t){ getInstance().getDaoSession().delete(t); } /** * 根据主键删除一条数据 * @param id */ public void deleteByKey(Long id){ getInstance().getDaoSession().getUserDao().deleteByKey(id); } /** * 改一条数据 * @param t * @param <T> */ public <T>void update(T t){ getInstance().getDaoSession().update(t); } }
总感觉可以在简单点,能力有限,哪位大神能教教我