将Asset 中数据库复制到android内存,并且通过xutils进行调用

来源:互联网 发布:域名所有权验证方式 编辑:程序博客网 时间:2024/05/16 00:33

 为了实现本地的题库加载,将数据库转换为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 来对数据库进行操作。幸甚至哉,歌以咏志

阅读全文
0 0
原创粉丝点击