RoomDatabase

import android.content.Context;

import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;

import com.systemui.plugin.utils.LogUtils;

@Database(entities = {NameIcn.class}, version = 2, exportSchema = false)
public abstract class IcnDatabase extends RoomDatabase {
    public abstract NameIcnDao getDao();


    private static IcnDatabase instance = null;

    public static synchronized IcnDatabase getInstance(Context context) {
        LogUtils.D("IcnDatabase context =="+context);
        if (instance == null) {
            instance = Room.databaseBuilder(context, IcnDatabase.class, "icn.db")
                    .allowMainThreadQueries().build();
        }
        return instance;
    }
}

@Entity
public class NameIcn {

    @PrimaryKey(autoGenerate = true)
    public int id;
    @ColumnInfo(name = "tag")
    public int tag;

    @Override
    public String toString() {
        return "NameIcn{" +
                "id=" + id +
                ", tag=" + tag +
                ", name='" + name + '\'' +
                ", drawid=" + drawid +
                ", pos=" + pos +
                ", auto=" + auto +
                '}';
    }

    @ColumnInfo(name = "name")
    public String name;
    @ColumnInfo(name = "drawid")
    public int drawid;
    @ColumnInfo(name = "pos")
    public int pos;
    @ColumnInfo(name = "auto")
    public int auto;

    public NameIcn(int tag, String name, int drawid, int pos, int auto) {
        this.tag = tag;
        this.name = name;
        this.drawid = drawid;
        this.pos = pos;
        this.auto = auto;
    }


    public int getTag() {
        return tag;
    }

    public void setTag(int tag) {
        this.tag = tag;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getDrawid() {
        return drawid;
    }

    public void setDrawid(int drawid) {
        this.drawid = drawid;
    }

    public int getPos() {
        return pos;
    }

    public void setPos(int pos) {
        this.pos = pos;
    }

    public int getAuto() {
        return auto;
    }

    public void setAuto(int auto) {
        this.auto = auto;
    }


}



import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;

import java.util.List;

@Dao
public interface NameIcnDao {
    //查(所有icn图标名称)
    @Query("select name  from  NameIcn")
    List<String> getAllName();

    //根据id更新是否是自动执行的标识
    @Query("update NameIcn set auto=:auto where id=:id")
    void updateOutFlag(int auto, int id);

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    void insert(NameIcn... nameIcns);

    //查询全部数据
    @Query(" select * from NameIcn order by pos")
    List<NameIcn> getAllNameIcn();

    @Query("select * from NameIcn where pos < 6 order by pos ASC")
    List<NameIcn> getAllupList();


    @Query(" select * from NameIcn where pos > 6 order by pos ASC")
    List<NameIcn> getAlldownList();

    //删除所有 ,测试使用
    @Query("delete from NameIcn")
    void deleteAll();

    //查(根据tag查pos)
    @Query("select pos  from  NameIcn where tag=:tag")
    int getPos(int tag);

    //修改icn的位置
    @Query("update NameIcn set pos=:pos where tag=:tag")
    void updatePos(int pos, int tag);
}

posted @ 2024-12-13 10:07  阿寳同學Zybao  阅读(12)  评论(0)    收藏  举报