<1>DbUtils-Create
来源:互联网 发布:淘宝看不到卖家中心 编辑:程序博客网 时间:2024/06/05 00:25
前言:本文源码截取自xUtils-2.6.14.jarhttp://download.csdn.net/detail/qq_25778369/9664552
1. 调用DbUtils的create方法
db = DbUtils.create(ServiceManager.getInstance().getContext(),"temp.db");
2.
public staticDbUtilscreate(Context context,String dbName) {
DaoConfig config = newDaoConfig(context);
config.setDbName(dbName);
return getInstance(config);
}
① New 一个DaoConfig(java Bean)对象,存储数据库名字,文件夹名字,等基本信息
② getIstance获得Dbutils对象
3.
private synchronized staticDbUtilsgetInstance(DaoConfig daoConfig) {
DbUtils dao = daoMap.get(daoConfig.getDbName());
if (dao ==null) {
dao = newDbUtils(daoConfig);
daoMap.put(daoConfig.getDbName(),dao);
}else{
dao.daoConfig= daoConfig;
}
// update the database if needed
SQLiteDatabase database = dao.database;
int oldVersion = database.getVersion();
int newVersion = daoConfig.getDbVersion();
if (oldVersion != newVersion) {
if(oldVersion !=0) {
DbUpgradeListener upgradeListener = daoConfig.getDbUpgradeListener();
if (upgradeListener !=null) {
upgradeListener.onUpgrade(dao,oldVersion,newVersion);
}else{
try{
dao.dropDb();
}catch(DbException e) {
LogUtils.e(e.getMessage(),e);
}
}
}
database.setVersion(newVersion);
}
returndao;
}
① 检查daoMap缓存中是否有对应的dbUtils对象,没有,新建一个
② 做一个升级检查
4. 新建一个
private DbUtils(DaoConfig config) {
if(config ==null) {
throw newIllegalArgumentException("daoConfig may not be null");
}
this.database= createDatabase(config);
this.daoConfig= config;
}
① Config检查,不能为空
② 根据填入的dbName新建一个database,存入DbUtils
③ 存储config,到daoConfig
5. 新建一个database
private SQLiteDatabase createDatabase(DaoConfig config) {
SQLiteDatabase result = null;
String dbDir = config.getDbDir();
if (!TextUtils.isEmpty(dbDir)) {
File dir = newFile(dbDir);
if (dir.exists() || dir.mkdirs()) {
File dbFile = newFile(dbDir,config.getDbName());
result = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
}
} else{
result = config.getContext().openOrCreateDatabase(config.getDbName(),0, null);
}
returnresult;
}
可以看见最终是调用SQLiteDataBase来创建database对象的
6. 小结
DbUtils:
daoConfig 存储config对象
database 存储 database对象
daoMap 缓存 dbUtils对象
- <1>DbUtils-Create
- Dbutils
- dbutils
- DbUtils
- DBUtils
- DBUtils
- DBUtils
- DBUtils
- DBUtils
- DBUtils
- Dbutils
- DBUtils
- dbutils
- dbutils
- DbUtils
- DbUtils
- DbUtils
- DbUtils
- sql server xp_readerrorlog SQL语句查看错误日志
- uboot测试技巧
- sublime3插件安装
- Kali Linux 无线渗透测试入门指南 第八章 攻击企业级 WPA 和 RADIUS
- maven启动tomcat报错
- <1>DbUtils-Create
- MyBatis mapper.xml文件中的curd语句
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
- 判断日期Calendar大小
- 图片模糊
- Netty服务器入门
- 184.Largest Number-最大数(中等题)
- MATLAB技巧——imshow多张图片
- pdf转换成jpg格式快准狠的转换方法