LiteOrm和线程池的封装。
先放上线程池的封装:
public class MyThreadPool {
//私有本类对象
private static MyThreadPool ourInstance;
private ThreadPoolExecutor mThreadPoolExecutor;
//提供外部的获取线程池对象的方法,双层校验锁
public static MyThreadPool getInstance() {
if (ourInstance == null){
synchronized (MyThreadPool.class){
if (ourInstance == null){
ourInstance = new MyThreadPool();
}
}
}
return ourInstance;
}
//私有构造函数,保证单例
private MyThreadPool() {
//获取手机核数
int CPUSize = Runtime.getRuntime().availableProcessors();
//一般来说我们核心线程数为手机核数+1
//最大线程数不能超过手机核数2倍+1
//自定义存活时间 时间单位 以及任务队列
mThreadPoolExecutor =
new ThreadPoolExecutor(CPUSize + 1
,CPUSize * 2 + 1
,60, TimeUnit.SECONDS,
new LinkedBlockingDeque<Runnable>());
}
public ThreadPoolExecutor getThreadPoolExecutor() {
return mThreadPoolExecutor;
}
}
接下来是LiteOrm的封装,首先介绍一下LiteOrm。
LiteOrm为对象关系型数据库,也就是用起来是面向对象的。轻量级,而且效率也不低。
简单封装代码如下:
public class DatabaseManager {
/**
* 简单的封装了插入、查询、删除数据以及删除数据库的方法。
*/
private static LiteOrm liteOrm;
private static DatabaseManager ourInstance = new DatabaseManager();
private DatabaseManager() {
liteOrm = LiteOrm.newCascadeInstance(MyApp.getContext(), "lexue.db");
}
public static DatabaseManager getInstance() {
return ourInstance;
}
// 插入一条记录
public <T> long insert(T t) {
return liteOrm.save(t);
}
// 插入所有记录
public <T> void insertAll(List<T> list) {
liteOrm.save(list);
}
// 查询所有
public <T> List<T> getQueryAll(Class<T> cla) {
return liteOrm.query(cla);
}
// 查询 某字段 等于 Value的值
public <T> List<T> getQueryByWhere(Class<T> cla, String field, String[] value) {
return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value));
}
// 查询 某字段
public <T> List<T> getQueryByWhereLength(Class<T> cla, String field,
String[] value, int start, int length) {
MyThreadPool.getInstance().getThreadPoolExecutor().execute(new Runnable() {
@Override
public void run() {
}
});
return liteOrm.<T>query(new QueryBuilder(cla).where(field + "=?", value)
.limit(start, length));
}
// 删除一个数据
public <T> void delete(T t) {
liteOrm.delete(t);
}
// 删除一个表
public <T> void delete(Class<T> cla) {
liteOrm.delete(cla);
}
// 删除集合中的数据
public <T> void deleteList(List<T> list) {
liteOrm.delete(list);
}
// 删除数据库
public void deleteDatabase() {
liteOrm.deleteDatabase();
}
}
/……题外:方便自己复习时翻阅,查询,千里之行始于足下,Come on!……./