sqlite工具LiteOrm封装的帮助类LiteOrmDBUt
2017-09-24 本文已影响16人
揪个太阳
1、导入LiteOrm.jar
2、LiteOrmDBUtil.java
public class LiteOrmDBUtil {
public static String DB_NAME;
public static LiteOrm liteOrm;
public static void createDb(Context _activity){
DB_NAME = "tuqu_ddsd.db";
liteOrm = LiteOrm.newCascadeInstance(_activity, DB_NAME);
liteOrm.setDebugged(true);
}
public static LiteOrm getLiteOrm(){
return liteOrm;
}
/**
* 插入一条记录
* @param t
*/
public static <T> void insert(T t){
liteOrm.save(t);
}
/**
* 插入所有记录
* @param list
*/
public static <T> void insertAll(List<T> list){
liteOrm.save(list);
}
/**
* 查询所有
* @param cla
* @return
*/
public static <T> List<T> getQueryAll(Class<T> cla){
return liteOrm.query(cla);
}
/**
* 查询 某字段 等于 Value的值
* @param cla
* @param field
* @param value
* @return
*/
public static <T> List<T> getQueryByWhere(Class<T> cla,String field,String [] value){
return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
}
/**
* 查询 某字段 等于 Value的值 可以指定从1-20,就是分页
* @param cla
* @param field
* @param value
* @param start
* @param length
* @return
*/
public static <T> List<T> getQueryByWhereLength(Class<T> cla,String field,String [] value,int start,int length){
return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value).limit(start, length));
}
/**
* 删除所有 某字段等于 Vlaue的值
* @param cla
* @param field
* @param value
*/
public static <T> void deleteWhere(Class<T> cla,String field,String [] value){
liteOrm.delete(cla, WhereBuilder.create(cla).where(field + "=?", value));
}
/**
* 删除所有
* @param cla
*/
public static <T> void deleteAll(Class<T> cla){
liteOrm.deleteAll(cla);
}
/**
* 仅在以存在时更新
* @param t
*/
public static <T> void update(T t){
liteOrm.update(t, ConflictAlgorithm.Replace);
}
public static <T> void updateALL(List<T> list){
liteOrm.update(list);
}
}
3、测试类
@Table("test_model")
public class TestModel {
// 指定自增,每个对象需要有一个主键
@PrimaryKey(AssignType.AUTO_INCREMENT)
private int id;
// 非空字段
@NotNull
private String name;
//忽略字段,将不存储到数据库
@Ignore
private String password;
// 默认为true,指定列名
@Default("true")
@Column("islogin")
private Boolean isLogin;
//什么都不做,也会存储到数据库,列名就是"token"
private String token;
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 String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Boolean getLogin() {
return isLogin;
}
public void setLogin(Boolean login) {
isLogin = login;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
4、使用
LiteOrmDBUtil.createDb(SplashActivity.this);
TestModel t=new TestModel();
t.setLogin(false);
t.setName("naemxxxx");
t.setToken("tokensdasdasd");
LiteOrmDBUtil.insert(t);
List< TestModel> list= LiteOrmDBUtil.getQueryAll( TestModel.class);
for ( TestModel tm: list
) {
Log.e("name",tm.getToken());
}