如何访问一个应用程序的数据库中使用SQLite另一个应用程序

如何访问一个应用程序的数据库中使用SQLite另一个应用程序,第1张

在我几个Android应用中,我需要访问已有的数据库。这些数据库往往很大,甚至超过asset文件大约1兆字节的限制。而且在新的版本中数据库需要更新。我在网上,特别是StackOverflow看了一些文章,并做了一些试验,觉得下面的代码能基本上满足我的需求。

其主要思路是:

1 把数据库分解成几个asset文件。

2 当需要打开数据库时,如果数据库不存在,就把那几个asset文件重新合并成一个数据库文件。

3 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。

下面是代码:

//数据库的缺省路径

private static finalString DB_PATH = "/data/data/commypackagemyapp/databases/";

private static finalString DB_NAME = "mydbdb";

private static finalint DB_VERSION = 2;

private static finalString DB_SPLIT_NAME = "mydbdb00";

private static finalint DB_SPLIT_COUNT = 3;

private SQLiteDatabasem_database;

private final Contextm_context;

/

Constructor

保存传进来的context参数以用来访问应用的asset和资源文件。

@param context

/

public MyDB(Contextcontext) {

super(context, DB_NAME, null, DB_VERSION);

thism_context = context;

}

public static MyDBopenDatabaseReadOnly(Context context) {

MyDB db = new MyDB(context);

try {

dbcreateDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

dbopenDataBase(SQLiteDatabaseOPEN_READONLY);

return db;

}

public static MyDBopenDatabaseReadWrite(Context context) {

MyDB db = new MyDB(context);

try {

dbcreateDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

dbopenDataBase(SQLiteDatabaseOPEN_READWRITE);

return db;

}

/

创建一个空数据库,用来存储你已有的数据库。

/

public voidcreateDataBase() throws IOException{

boolean dbExist =checkDataBase();

if (dbExist) {

/

如果你的数据库的版本改变了,调用这个方法确保在onUpgrade()被调用时

传进去的是可写的数据库。

/

SQLiteDatabase db =thisgetWritableDatabase();

if (db != null) {

dbclose();

}

}

dbExist = checkDataBase();

if (!dbExist) {

以上就是关于如何访问一个应用程序的数据库中使用SQLite另一个应用程序全部的内容,包括:如何访问一个应用程序的数据库中使用SQLite另一个应用程序、sqlite3使用方法、100分 Sqlite能不能访问网络上的数据库呀怎么访问等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9743585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存