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

本文介绍了一种将数据库转换为SQLite并加载到应用程序的方法,详细讲解了如何通过XUtils进行数据库操作,包括数据库写入和读取的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值