Android wiki : 20.操作自己已有的数据库

//打开一个已有的数据库
SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);

例子:操作手机归属地的数据库

1:将自己的数据库放到项目的assets/下
	assets/address.db

2:软件启动时将数据库复制到data/data/包名/files/目录下(因为应用访问不了assets这个资产目录)
	/**
	 * 将assets目录下的数据库address.db复制到data/data/包名/files/address.db
	 */
	private void copyDB() {

		File file = new File(getFilesDir(), "address.db");

		if (file.exists() && file.length() > 0) {
			Log.i(TAG, "address.db已经存在,需要复制");
		} else {
			InputStream is = null;
			OutputStream os = null;
			try {
				is = getAssets().open("address.db");
				os = new FileOutputStream(file);
				byte[] bu = new byte[1024];
				int len = 0;
				while ((len = is.read(bu)) != -1) {
					os.write(bu, 0, len);
				}

				Log.i(TAG, "复制数据库完成");
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
						is.close();
						os.close();
				}
			}

		}
	}

3:操作数据库

private static String path = "data/data/com.zhong.mobilephonetools/files/address.db";
public static String queryNumber(String number) {
	SQLiteDatabase db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READONLY);
	String location = number;
	String sql = "select location from data2 where id=(select outKey from data1 where id=?)";
	Cursor cursor = db.rawQuery(sql, new String[] { number.substring(0, 7) });
	while (cursor.moveToNext()) {
		location = cursor.getString(0);
	}
	return location;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 05:28:14

Android wiki : 20.操作自己已有的数据库的相关文章

Android——采用SQLiteDatabase操作SQLite数据库

除了能够使用文件或SharedPreferences存储数据.还能够选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,尽管它支持的类型仅仅有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型.仅仅只是在运算或保存时会转成相应的五种数据类型. SQLite最大的特

Android——使用SQLiteDatabase操作SQLite数据库

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是

TFS 打得你措手不及!TF53001:管理员已取消数据库操作

心塞.公司TFS突然挂了.签入获取 一直报 TF53001:管理员已取消数据库操作.公司开发部开发进度一下就受阻了.刚好有时关键时期. 在 老总的帮助下根据搜到的资料 .搞定了这个问题!问题出在数据库上.我们用的是SQL Server 2014 版 10.200 .后来去微软官网下载了 Microsoft? SQL Server? 2014 Service Pack 2 (SP2) 更新包.更新上就好了.服务器一定要 装 Service Pack 版.不然更新不了 特此写下解决的方法.希望可以对

关于Android中内容操作数据库失败的原因及修改方法

最近学习Android开发,在Android Studio编写SQL语句. 很熟悉的一点是,在Android Studio中写SQL语句的增删改查都是写在引号(" ")中的,因此在单词拼写错误的情况下,软件不会提示有错误,最近总结出了几点学习方法. 1.从Android Studio中导出所创建的数据库 在File Explorer下选择data文件夹,单击一下,在点击第二个data,在第二个data中寻找你所创建的文件夹 选择database文件下你所创建的数据库,然后导出到你的桌面

数据库表的创建、管理和数据操作(实验一),数据库创建

数据库表的创建.管理和数据操作(实验一),数据库创建 今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:利用SQL语言进行数据库表的各种操作:1.数据库表的创建.修改和删除操作.2.向表中进行数据的插入.删除和修改操作.[实验内容]1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC.2.利用INSERT.UPDATE和DELE

android之SQLlite操作

布局文件 创建了四个按键,分别对应增删改查 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&quo

打造android ORM框架opendroid(二)——自动创建数据库

在上一篇博客<打造android ORM框架opendroid(一)--ORM框架的使用>中相信你已经了解了opendroid的使用,那么从这篇博客开始,我们正式进入opendroid的源码分析,打造一款自己的ORM框架! 在正式开始之前,你需要保证手里有一份opendroid的源码,如果还没下载opendroid,请到http://git.oschina.net/qibin/OpenDroid 下载opendroid的源码. 任何数据库操作都是从创建数据库开始的,今天我们就来看看opendr

从零开始学android&lt;数据存储(4)Sqlite数据库存储.三十八.&gt;

从前几章我们分别学习了属性文件存储输数据,内储存存储数据,和外部储存存储数据,今天我们来学习一下android 轻量级数据库Sqlite数据库的数据存储 首先必须了解SQLiteOpenHelper SQLiteDatabase类本身只是一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中

Android开发-Sqlite操作

在写文章的核心的部分时我想简单的提一个小技巧: 大家通常在布局的使用中可能经常性的发现一个头部或者尾部的一个整体会被经常性的使用,在通常的java程序中这样重复的部分一般考虑用类进行封装,在android中xml式的文件中会怎么样处理?这里考虑用xml文件进行部件的封装. 先看我写的一个实际的xml文件 可以看出这样的xml文件中包含很多的图片文件,我们在定义一个drawable的时候可以通过xml定义的drawable对象.它使得一个图片能在不同的状态下显示不同的图案,比如一个Button,它