package com.xinxin.everyxday.dao.util; import android.content.Context; import android.util.Log; import com.xinxin.everyxday.EveryXDayApplication; import com.xinxin.everyxday.dao.model.Like; import com.xinxin.everyxday.dao.newdao.DaoSession; import com.xinxin.everyxday.dao.newdao.LikeDao; import java.util.List; /** * Created by mengxiao on 15/8/13. */ public class DbService { private static final String TAG = DbService.class.getSimpleName(); private static DbService instance; private static Context appContext; private DaoSession mDaoSession; private LikeDao likeDao; private DbService() { } public static DbService getInstance(Context context) { if (instance == null) { instance = new DbService(); if (appContext == null){ appContext = context.getApplicationContext(); } instance.mDaoSession = EveryXDayApplication.getDaoSession(context); instance.likeDao = instance.mDaoSession.getLikeDao(); } return instance; } public Like loadLike(long id) { return likeDao.load(id); } public List<Like> loadAllLike(){ return likeDao.queryRaw("WHERE _ID > 0 ORDER BY _ID DESC"); } /** * query list with where clause * ex: begin_date_time >= ? AND end_date_time <= ? * @param where where clause, include 'where' word * @param params query parameters * @return */ public List<Like> queryLike(String where, String... params){ return likeDao.queryRaw(where, params); } /** * insert or update like * @param like * @return insert or update like id */ public long saveLike(Like like){ return likeDao.insertOrReplace(like); } /** * insert or update likeList use transaction * @param list */ public void saveLikeLists(final List<Like> list){ if(list == null || list.isEmpty()){ return; } likeDao.getSession().runInTx(new Runnable() { @Override public void run() { for(int i=0; i<list.size(); i++){ Like like = list.get(i); likeDao.insertOrReplace(like); } } }); } /** * delete all like */ public void deleteAllLike(){ likeDao.deleteAll(); } /** * delete like by id * @param id */ public void deleteLike(long id){ likeDao.deleteByKey(id); Log.i(TAG, "delete"); } public void deleteLike(Like like){ likeDao.delete(like); } }