DraftsDao.java 1.74 KB
package com.wd.room.dao;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import com.wd.room.entity.publish.DraftsModel;
import java.util.List;

/**
 * 草稿箱数据库dao
 *
 * @author baozhaoxin
 * @version [V1.0.0, 2023/7/3]
 * @since V1.0.0
 */
@Dao
public interface DraftsDao {

    /**
     * 增加一个
     *
     * @param model
     */
    @Insert
    void add(DraftsModel model);

    /**
     * 更新一个
     *
     * @param model
     */
    @Update
    void update(DraftsModel model);

    /**
     * 清空所有
     *
     */
    @Query("DELETE FROM tb_drafts WHERE userId=:userId ")
    void clear(String userId);

    /**
     * 条件删除数据
     * @param draftModels
     */
    @Delete
    void deleteDrafts(DraftsModel... draftModels);

    /**
     * 查询所有数据
     * @return
     */
    @Query("SELECT * FROM tb_drafts WHERE userId=:userId ORDER BY saveTime DESC")
    List<DraftsModel> queryAll(String userId);

    /**
     * 查询所有数量
     * @return
     */
    @Query("SELECT COUNT(*) FROM tb_drafts  WHERE userId=:userId ")
    int getTotalCount(String userId);

    /**
     * 查询第一条
     * @return historyLocalModel
     */
    @Query("SELECT * FROM tb_drafts  WHERE userId=:userId  LIMIT 1 ")
    DraftsModel[] getFirstDrafts(String userId);

    /**
     * 通过key删除数据,有时间戳
     * @param keys
     */
    @Query("DELETE FROM tb_drafts WHERE keys=:keys")
    void delDraftByKey(String keys);


    /**
     * 根据key查询,有时间戳
     * @param keys
     * @return
     */
    @Query("SELECT * FROM tb_drafts WHERE keys=:keys LIMIT 1")
    DraftsModel[] getDraftsModelByKey(String keys);
}