public classArticleDao
{private DaoarticleDaoOpe;privateDatabaseHelper helper;
@SuppressWarnings("unchecked")publicArticleDao(Context context)
{try{
helper=DatabaseHelper.getHelper(context);
articleDaoOpe= helper.getDao(Article.class);
}catch(SQLException e)
{
e.printStackTrace();
}
}/*** 添加一个Article
*
*@paramarticle*/
public voidadd(Article article)
{try{
articleDaoOpe.create(article);
}catch(SQLException e)
{
e.printStackTrace();
}
}/*** 通过Id得到一个Article
*
*@paramid
*@return
*/@SuppressWarnings("unchecked")public Article getArticleWithUser(intid)
{
Article article= null;try{
article=articleDaoOpe.queryForId(id);
helper.getDao(User.class).refresh(article.getUser());
}catch(SQLException e)
{
e.printStackTrace();
}returnarticle;
}/*** 通过Id得到一篇文章
*
*@paramid
*@return
*/
public Article get(intid)
{
Article article= null;try{
article=articleDaoOpe.queryForId(id);
}catch(SQLException e)
{
e.printStackTrace();
}returnarticle;
}/*** 通过UserId获取所有的文章
*
*@paramuserId
*@return
*/
public List listByUserId(intuserId)
{try{
QueryBuilder articleBuilder =articleDaoOpe
.queryBuilder();
QueryBuilder userBuilder= helper.getDao(User.class).queryBuilder();
articleBuilder.join(userBuilder);/*Where where = articleBuilder.where();
where.eq("user_id", 1);
where.and();
where.eq("title", "ORMLite数据库");
return where.query();*/
//或者
/*return articleDaoOpe.queryBuilder().//
where().//
eq("user_id", 1).and().//
eq("title", "ORMLite数据库").query();*/
//复杂的查询
/*where.or(
//
where.and(//
where.eq("user_id", 1), where.eq("name", "xxx")),
where.and(//
where.eq("user_id", 2), where.eq("name", "yyy")));*/
return articleDaoOpe.queryBuilder().where().eq("user_id", userId)
.query();
}catch(SQLException e)
{
e.printStackTrace();
}return null;
}
}