为了实现本地的题库加载,将数据库转换为sqlite ,然后复制到了Asset 文件夹,通过写到本地,然后通过xutils 的数据库操作进行读取:
//首次登录写入数据库 检查是否执行过数据库写入操作 如果是,执行题库的写入操作
private void writeDB() {
//开子线程写入数据库
if (mSystemUtil.showDBstate() == 0) {
new Thread(new Runnable() {
@Override
public void run() {
if (new File(BaseData.DB_PATH + BaseData.DB_NAME).exists() == false) {
File dir = new File(BaseData.DB_PATH);
if (!dir.exists()) {
dir.mkdir();
}
try {
InputStream is = getBaseContext().getAssets().open(BaseData.DB_NAME);
OutputStream os = new FileOutputStream(BaseData.DB_PATH + BaseData.DB_NAME);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
os.flush();
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}).start();
}
mSystemUtil.saveDBstate(1);
}
然后通过xutils 进行读取,对xutils的数据库模块进行配置:配置路径和数据库名称 : db_name db_path
package com.post.posttime.Database;
import com.post.posttime.BaseClass.BaseData;
import org.xutils.DbManager;
import org.xutils.db.table.TableEntity;
import org.xutils.x;
import java.io.File;
/**
* Created by Administrator on 2017/1/4.
* 数据库操作工具类
*/
public class DButils {
static DbManager.DaoConfig daoConfig;
public static DbManager DB=getDBmanager();
public static DbManager.DaoConfig getDaoConfig(){
File file=new File(BaseData.DB_PATH);//设置数据库路径
if(daoConfig==null){
daoConfig=new DbManager.DaoConfig()
.setDbName(BaseData.DB_NAME)//设置数据库名称
.setDbDir(file)
.setDbVersion(1)
.setAllowTransaction(true)
.setDbUpgradeListener(new DbManager.DbUpgradeListener() {
@Override
public void onUpgrade(DbManager db, int oldVersion, int newVersion) {
}
}).setTableCreateListener(new DbManager.TableCreateListener() {
@Override
public void onTableCreated(DbManager db, TableEntity<?> table) {
}
});
}
return daoConfig;
}
static DbManager getDBmanager(){
DbManager manager= x.getDb(getDaoConfig());
return manager;
}
}
然后就可以通过注解方式生成javabean 来对数据库进行操作。幸甚至哉,歌以咏志