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);
}
本文来自博客园,作者:阿寳同學Zybao,转载请注明原文链接:https://www.cnblogs.com/zybao/p/18604274

浙公网安备 33010602011771号