怎么在SD卡中创建数据库

怎么在SD卡中创建数据库,第1张

在SD卡上创建数据库

通过android的SQLiteOpenHelper类的源码,可以看到SQLiteOpenHelper类的getWritableDatabase

这个接口实际上调用的是Context的openOrCreateDatabase方法,而这个方法是不支持带路径的数据库名

称的,也就是说,用这个方法创建的数据库只能放在/data/data/包名称/ 目录下;要想在SD卡上创建数据库

,我们可以调用SQLiteDatabase类的openOrCreateDatabase方法,这个方法是支持带路径的数据库名称的。

那么下面的问题就是如何判断是否存在SD卡,已经如何获取SD卡的路径了?

判断是否存在SD卡:

android.os.Environment.MEDIA_MOUNTED.equals(

android.os.Environment.getExternalStorageState())

获取SD卡路径:String dbPath=android.os.Environment.getExternalStorageDirectory()

.getAbsolutePath()

在SD卡上创建数据库方法如下:

String dbPath=android.os.Environment.getExternalStorageDirectory()

.getAbsolutePath()+"/database"

File dbp=new File(dbPath)

File dbf=new File(dbPath+"/"+"test.db")

if(!dbp.exists()){

dbp.mkdir()

}

//数据库文件是否创建成功

boolean isFileCreateSuccess=false

if(!dbf.exists()){

try{

isFileCreateSuccess=dbf.createNewFile()

}

catch(IOException ioex){

}

}

else{

isFileCreateSuccess=true

}

if(isFileCreateSuccess)

db = SQLiteDatabase.openOrCreateDatabase(dbf, mFactory)

为了简便起见,我们可以用上述方法重写SQLiteOpenHelper类的getWritableDatabase方法,

其他逻辑参照SQLiteOpenHelper类即可。最后别忘了,加入SD卡的读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>。

在sd卡上创建数据库

通过android的sqliteopenhelper类的源码,可以看到sqliteopenhelper类的getwritabledatabase

这个接口实际上调用的是context的openorcreatedatabase方法,而这个方法是不支持带路径的数据库名

称的,也就是说,用这个方法创建的数据库只能放在/data/data/包名称/

目录下;要想在sd卡上创建数据库

,我们可以调用sqlitedatabase类的openorcreatedatabase方法,这个方法是支持带路径的数据库名称的。

第一步:新建一个Android工程,命名为SQLiteDatabaseDemo.

第二步:创建一个新的类BooksDB.java这个类要继承于android.database.sqlite.SQLiteOpenHelper抽象类,我们要实现其中两个方法:onCreate(),onUpdate.

第三步:修改main.xml布局如下,由两个EditText和一个ListView组成

第四步:修改SQLiteDatabaseDemo


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

原文地址: https://www.outofmemory.cn/sjk/6425132.html

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

发表评论

登录后才能评论

评论列表(0条)

保存