当前位置:首页 » 操作系统 » 安卓打开数据库

安卓打开数据库

发布时间: 2023-04-23 21:35:50

‘壹’ 安卓开发怎么调用sqlite数据库文件

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

其主要思路是:

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

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

3. 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。下面是代码://数据库的缺省路径

private static finalString DB_PATH = "/data/data/com.mypackage.myapp/databases/";

private static finalString DB_NAME = "mydb.db";

private static finalint DB_VERSION = 2;

private static finalString DB_SPLIT_NAME = "mydb.db.00";

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);

this.m_context = context;

}

public static MyDBopenDatabaseReadOnly(Context context) {

MyDB db = new MyDB(context);try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}db.openDataBase(SQLiteDatabase.OPEN_READONLY);

return db;

}

public static MyDBopenDatabaseReadWrite(Context context) {

MyDB db = new MyDB(context);try {

db.createDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}db.openDataBase(SQLiteDatabase.OPEN_READWRITE);

return db;

}

/**

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

*/

public voidcreateDataBase() throws IOException{

boolean dbExist =checkDataBase();

if (dbExist) {

/*

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

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

*/

SQLiteDatabase db =this.getWritableDatabase();if (db != null) {

db.close();

}

}dbExist = checkDataBase();if (!dbExist) {

try {

/*

** 调用这个方法以确保在缺省路径内产生一个空数据库,以便在其基础上复制我们已有的数据库。

*/

SQLiteDatabase db =this.getReadableDatabase();if (db != null) {

db.close();

}

DataBase();

}

catch (IOException e) {

Log.e("DB", e.getMessage());

throw new Error("Error ingdatabase");

}

}

}

/**

* 检查数据库是否已存在,以避免重复复制。

* @return true if it exists, false if itdoesn't

*/

private static booleancheckDataBase(){

SQLiteDatabase checkDB = null;

try {

String path = DB_PATH + DB_NAME;

checkDB =SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

}

catch (SQLiteException e){

//database does't exist yet.

}

if (checkDB != null) {

checkDB.close();

}

return checkDB != null ? true : false;

}

/**

* 把存在asset文件中的数据库复制的刚创建的空数据库中。

* */

private voidDataBase() throws IOException {

// 刚创建的空数据库的路径

String outFileName = DB_PATH + DB_NAME;

// 打开空数据库

OutputStream output = new FileOutputStream(outFileName);byte[] buffer = new byte[1024*8];AssetManager assetMgr =m_context.getAssets();for (int i = 1; i <= DB_SPLIT_COUNT; i++){

// 打开分解的asset文件

String fn = DB_SPLIT_NAME +String.valueOf(i);

InputStream input = assetMgr.open(fn);

//Log.i("DB", "opened" + fn);int length;

while ((length = input.read(buffer)) >0) {

//Log.i("DB", "read" + String.valueOf(length));

output.write(buffer, 0, length);

//Log.i("DB", "write" + String.valueOf(length));

}

input.close();

}//Close the streams

output.flush();

output.close();

}/**

* 打开数据库。

* */

private voidopenDataBase(int flags) throws SQLException{

//Open the database

String myPath = DB_PATH + DB_NAME;

m_database =SQLiteDatabase.openDatabase(myPath, null, flags);

}/**

* 关闭数据库。

* */

@Override

public synchronizedvoid close() {

if (m_database != null)

m_database.close();

super.close();

}

}@Override

public voidonCreate(SQLiteDatabase db) {

// 不需做任何事

}/**

* 在数据库版本提高时,删除原有数据库。

* */

@Override

public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

if (newVersion > oldVersion) {

m_context.deleteDatabase(DB_NAME);

}

}
转载

‘贰’ 安卓手机上有没有能打开access数据库的程序

这个目前我还没遇到过,安卓使用的数据库是sqlite,而access是人家微软的,使用Jet引擎,而jet还没有对安卓提供支持。我是做软件开发的,虽然不是主攻安卓,但清备亩是这个问题我还是可以肯定的。你可以试试在pc端把access数据导出,转换到sqlite数据库,再用手机打开,答森手机端可以使滚则用Sqlite Editor工具

‘叁’ 安卓手机如何打开db文件

手机打不开,只能在电脑端打开,操作方法如下:

操作设备:戴尔电脑

操作系统:win10

操作软件:SQLite Expert Professional 3 db文件管理器

1、首先准备必备的工作,准备好SQLite Expert Professional 3 db文件管理器,和一个手机db文件。

‘肆’ android自带的数据库怎么打开表

1、打开adb.exe;
2、打开DDMS(AndroidDeviceMonitor);
3、获取权限。在获取权限的时候,需要一步一步的获取文件夹权限。获取data文件夹权限,获取dada/dada文件夹权限,获取应用db文件,导出db文件;
4、查看数据库结构。

‘伍’ android系统sqlite数据库文件怎么打开

切换到ddms,显示file
explorer窗口,找到/data/data/然后找到自己用的程序包的文件夹,打开databases,就看到sqlite数据库文件了,然后到处就可以了。步骤上面标注好了,1,2,3。这样就把sqlite数据库文件以文件的方式导出来了,然后使用sqlite界面管理工具如sqlite
administrator、sqlite
man或者firefox插件sqlite
manager等打开就可以了。

‘陆’ 安卓手机如何打开.dbf文件

  • 01

    安卓手机没有能打开.dbf文件的方法,电脑可以直接用Excel打友樱开。dbf是一种特殊的文件格式,表示数据库文件,Foxbase、Dbase、Visual FoxPro等数据库处理系统败告皮所产生的数据库文件。

    DBF格式数据库是常用的桌面型数据库。作为一个在商业应用中的结构化数据存储标准格式,DBF格式文件得以广泛的应察差用于各类企业及事业单位用于数据交换。

    dbf文件可以直接用EXCEL打开,用ACCESS打开。ACCESS数据库-Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成。

    dbf文件可以用数据库浏览器打开。《DataBaseBrowser数据库浏览器》是数据库资料查询浏览的工具软件,可以查询数据库数据内容,也可以查询数据库的结构信息,包括数据库信息,表结构、索引、主键的信息,并且可以查询数据库查询及视图信息。

‘柒’ 安卓手机如何打开.ucmd2文件

1.在电脑安装

sqlitedeveloper,安装后在桌面生成图标,点击图标打开程序。2.打开程序后,可以看到程序左边的“数据库列表”。展开可以查看到所有打开过的数据库。3.点击一个.db文件,把这个.db直接拖拉进程序窗口。4.显示“注册数据库”,点击【确定】,这样就可以用

sqlitedeveloper管理这个.db文件了。5.展开左边数据库列表,找到刚才注册的.db文件。点击右键菜单的【打开数据库】。6.打开数据库后可以看到这个.db文件中有很多的数据表,选择其中一个,右键点击【查询数据】。则可以

‘捌’ 安卓怎么读取sqlite数据库

安装SQLite Expert Professional 可以在网上下载,我下载的是试用版,没有找注册码,但是试用不影响使用,反正用几次查看到数据库操作没有错误就不用这个工具了。当然也可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看。android项目中的sqlite数据库位于/data/data/项目包/databases中。先介绍使用DDMS导出sqlite数据库的操作和使用adb工具访问sqlite数据库。
首先打开android项目的调试模式,然后找到显示DDMS

切换到DDMS,显示File Explorer窗口,找到/data/data/ 如下图1 ,
然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了。选择将其导出。如下图2.
这样就把sqlite数据库文件以文件的方式导出来了,然后使用sqlite界面管理工具如SQLite Expert Professional可以打开该数据库了。其他 sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager也可以打开该数据库。

使用adb工具访问sqlite数据库
Android Debug Bridge(ADB)是Android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,我们 知道android是基于linux内核,它的内部文件结构也是采用linux文件组织方式,因此访问它的文件结构需要使用shell。这次我们就会用 shell来访问android应用中的sqlite数据库文件。
1、运行cmd,切换到android-sdk目录,运行adb.exe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell:如下图

进入数据库所在目录:
shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。了解这两个命令之后,就可以找到data/data/项目包名/databases 如下图1, 找到数据库文件如下图2。

使用sqlite管理工具来进行数据库操作
键入sqlite3 数据库名就进入了sqlite管理模式了。
如下图

设置sqlite环境变量:
在android的sdk中自带了sqlite3.exe,这是sqlite的官方管理工具,它是一个命令行工具。为了使用方便,将其路径注册到系 统环境变量path中,即将;%Android_Home%加在Path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了。
如下图:

8
使用sqlite管理数据库:
sqlite命令行工具默认是以;结束语句的。所以如果只是一行语句,要在末尾加;,或者在下一行中键入;,这样sqlite命令才会被执行。
sqlite常用命令:
.tables--查看数据库的表列表
.exit--退出sqlite命令行
其他命令可随时.help查看帮助。sql命令可直接在此命令行上执行即可:

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:738
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371