基于目前还是小白,那么写过的代码每次必会优化,我们就拿上次自己写的数据库框架优化一下吧。之所以自己写一方面是因为内涵段子项目的需求问题,必须按需定制;还有一方面我想写得更好在性能方面一定要想方设法超过第三方的开源数据库框架。
所有分享大纲:2017Android进阶之路与你同行
视频讲解地址:http://pan.baidu.com/s/1eSj5cdk
我从网上找了一个数据给大家看一下,分别是LitePal,AFinal,greenDAO。批量插入10000条数据,三种框架用时为:
LitePal 12882ms; AFinal 2783ms; greedDAO 623ms;估计很多人观察我很久了,早就看你不顺眼了,老是盗取别人的数据。这个请见谅,我不是故意的,大家应该都还记得王自如和罗永浩的大战,所以我就拿某个哥们的展示一下,非常感谢数据的提供。接下来我就拿我比较熟悉的LitePal和我自己的做一下对比,同样10000条数据:
LitePal 997ms; Darren 517ms;以上的数据只是用来测试并不能代表什么,各位请自行忽略,请自带马赛克,为什么只优化了插入部分呢?目前不能在数据库停留太久,要加快步伐把内涵段子完结,后面有时间会做NDK数据库加解密,懒加载等等、没有最好只有更好。
增删改查,使用起来还是蛮简单的,数据库存放的位置在外部存储卡中:
// 4.0 直接从工厂里面获取daoSupport IDaoSupport<Person> daoSupport = DaoSupportFactory.getFactory(). getDaoSupport(Person.class); // 4.1 插入数据对象(单条) daoSupport.insert(new Person("Darren", 23)); // 4.2 插入数据对象(批量) List<Person> persons = new ArrayList<>(); for (int i = 0; i < 10000; i++) { persons.add(new Person("darren", "23")); } daoSupport.insert(persons); // 4.3 查询所有 List<Person> persons = daoSupport.querySupport().queryAll(); // 4.4 根据条件进行查询 List<Person> persons = daoSupport.querySupport() .selection("age = ?").selectionArgs("23").query(); // 4.5 根据条件进行删除 daoSupport.delete("age = ?","23"); // 4.6 根据条件进行更新 Person person = new Person("Jack",24); daoSupport.upadte(person,"age = ?","23");所有分享大纲:2017Android进阶之路与你同行
视频讲解地址:http://pan.baidu.com/s/1eSj5cdk