1.介绍
最近项目里要使用本地存储的功能,就是说,要把一些信息和数据保存在本地,这又是我之前没有接触过的,在网上找了找,发现anroid常用的数据库框架有Ormlite和GreenDao,可是使用说明看起来都好麻烦啊!后来幸运的找到了一个比较轻量级的数据库,LiteOrm,该库的作者很有特色,一直在追求简化的操作,真的好厉害啊,连我都会用了。(我玩魔兽世界的时候,也喜欢把界面弄得简洁清新,经常折腾一两个小时的插件和ui哈哈)下面给个链接,有兴趣的人可以去看看他的其他项目。
https://litesuits.com/?form=gorm
另外推荐两篇详细版的使用博客
http://blog.csdn.net/u014099894/article/details/51586500
http://www.jianshu.com/p/0d72226ef434
2.接入
首先,从他的github上下载LiteOrm的jar包,复制到libs目录。
然后在项目结构里面,选择添加jar包为依赖,找到我们复制进去的jar包,按确定即可。
3.基本使用
1.保持单例
//初始化数据库
if (liteOrm == null) {
DataBaseConfig config = new DataBaseConfig(getActivity(), dbname);
//"liteorm.db"是数据库名称,名称里包含路径符号"/"则将数据库建立到该路径下,可以使用sd卡路径。 不包含则在系统默认路径下创建DB文件。
//例如 public static final String DB_NAME = SD_CARD + "/lite/orm/liteorm.db"; DataBaseConfig config = new DataBaseConfig(this, DB_NAME);
config.dbVersion = 1; // set database version
config.onUpdateListener = null; // set database update listener
//独立操作,适用于没有级联关系的单表操作,
liteOrm = LiteOrm.newSingleInstance(config);
//级联操作,适用于多表级联操作
// liteOrm=LiteOrm.newCascadeInstance(config);
}
liteOrm.setDebugged(true); // open the log
如果整个app只有一个数据库,那么作者建议我们保持单例,不然可能会出问题。可是我第一次初始化数据库是在一个fragment里面,第二次使用是在activity里面,所以,我就在activity里面使用了liteorm = MyFragment.liteorm,这样的方法。。。不知道对不对,感觉怪怪的,但是没有报错,也可以正常使用。
2.建立一个类
一开始我不明白啥意思,后来发现,这就是你要保存的那个类,只是要加入一个自增长的id以及一些注解就行。我这里就做了个简单的类,get和set之类的就不写进来了。。
@Table("SuccessEntity")
public class SuccessEntity {
// 指定自增,每个对象需要有一个主键
@PrimaryKey(AssignType.AUTO_INCREMENT)
private int id;
private String ProductName;
private String Factory;
private String Team;
private String ProduceLine;
private String ProductionDate;
private String GuaranteePeriod;
private String ProductPhoto;
private String DeliveryAddress;
private int DeliveryCount;
private String DeliveryDate;
private String User;
private String Location;
private String queryResult;
private boolean isfake;
private String date;
private String month;
private String currenttime;
......}
3.增删改查
1.保存对象
特别简单,直接
liteOrm.save(entity);
2.查询列表
我在一个activity的onCreate()里面,查询了我本地的数据库,并把他们添加至recyclerview
//自己拼SQL语句
QueryBuilder<SuccessEntity> qb = new QueryBuilder<SuccessEntity>(SuccessEntity.class);
qb.appendOrderDescBy("id");
List<SuccessEntity> list = liteOrm.query(qb);
madapter = new Madapter(R.layout.item_result,list,this);
rvResult.setLayoutManager(new LinearLayoutManager(this));
rvResult.setAdapter(madapter);
结尾
没啥好说的。。。感觉很方便,当然我写的也太简单了,这个库其实能做很多事情,级连操作之类的。。多用用就会熟练。