android自定义sqlite路径,SQLite数据库创建时自定义路径

前言

在新建数据库sqlite的时候,我们已经知道了数据库默认路径为/data/data/com.example.pei.textdemo/databases/test_demo.db

那么,如果我们想在创建数据库时,自定义一个自己的路径该如何处理呢,需要涉及到三步自定义Context,重写sqlite存储路径

修改继承于SQLiteOpenHelper的DBOpenHelper类

数据库的调用

下面就来讲讲具体操作。

一.自定义Context,重写sqlite存储路径

我们在创建数据库的时候,会涉及到一个类SQLiteOpenHelper,一般建数据库的时候,都要继承SQLiteOpenHelper实现一个自己的helper类,这里,我写一个自己的helper来继承SQLiteOpenHelper,部分代码如下:public class DBOpenHelper extends SQLiteOpenHelper{

......

}

然后在DBOpenHelper这个类中,我们会有两个构造方法public DBOpenHelper(Context context) {

this(context, DB_NAME, null, 1);

this.mContext= context;

}

public DBOpenHelper(Context context, String dbName, SQLiteDatabase.CursorFactory factory, int version) {

super(context, dbName, factory, version);

}

其中 mContext为Context,Context类会涉及到sqlite的储存路径,为了自定义数据库路径,我们需要实现一个自己的context,来自定义数据库路径,然而Context有一个子类ContextWrapper,可以方便用户对Context进行自定义,看源码中ContextWrapper继承关系如下:/**

* Proxying implementation of Context that simply delegates all of its calls to

* another Context. Can be subclassed to modify behavior without changing

* the original Context.

*/

public class ContextWrapper extends Context {

Context mBase;

public ContextWrapper(Context base) {

mBase = base;

}

那么,我们就写一个类ContextWrapper来继承ContextWrapper实现自己的context,代码如下:package com.example.pei.textdemo.sqlite;

import android.content.Context;

import android.content.ContextWrapper;

import android.database.DatabaseErrorHandler;

import android.database.sqlite.SQLiteDatabase;

import com.example.pei.textdemo.util.SDCardUtil;

import java.io.File;

/**

* Title:

* Description:

*

* Created by pei

* Date: 2017/11/20

*/

public class DataBaseCont

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值