首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

android SQLite数据库使用小结之(一)从加载本地数据库开始

2013-10-08 
android SQLite数据库使用总结之(一)从加载本地数据库开始好久以前就写了,但是一直拖拖拉拉的,在草稿箱里

android SQLite数据库使用总结之(一)从加载本地数据库开始

好久以前就写了,但是一直拖拖拉拉的,在草稿箱里放了两个星期还没写完,想想这样托下去又要废掉了,还是分开来吧,写多少是多少。


android的SQLite数据库简单使用一段时间了,现在想抽些时间总结下,不然总感觉很乱


1、先说一个工具:SQLiteExpert 


SQLite Expert,一款SQLite数据库操作工具,下载地址:http://www.sqliteexpert.com/  ,Personal Edition是免费的,日常使用基本足够,需要专业版的可以自行网上寻找。当然,其他免费的工具还有很多,如:SQLite Database Browser,SQLiteManager等。

android SQLite数据库使用小结之(一)从加载本地数据库开始


2、从加载一个本地数据库开始假设我们的SDCard的根目录上已经存在一个数据库,名称为:ChinaCity.db。这时候我们可以这样操作:


开发的时候,我们可能会需要一些初始化数据,比如城市信息,这样我们就可以事先创建好一个数据库,写入初始数据,将其放入自己的apk中一起分发。这个时候我们就可以直接从资源文件中读取这个数据库文件写入到应用的数据库目录或者SDCard中,然后就可以对其操作,拷贝代码如下:

/** * 拷贝资源中数据库 * @param where 1SDCARD,2LOCAL */public void copyDataBase(int where) {// 每个应用都有一个数据库目录,他位于 /data/data/packagename/databases/目录下String packageName = "com.ttdevs.citydata"; // xml中配置的String dbName = "ChinaCity.db";String dbPath = null;if(where == 1){ // sdcarddbPath = Environment.getExternalStorageDirectory() + File.separator + dbName;} else { // localdbPath = "/data/data/" + packageName + "/databases/" + dbName;}if(where == 2){new File("/data/data/" + packageName + "/databases/").mkdirs();}if ( where == 1 && !Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {    return ; // 未挂载外部存储,拷贝到内部不用判断}File dbFile =new File(dbPath);if(dbFile.exists()){dbFile.delete();}try {dbFile.createNewFile();} catch (IOException e1) {e1.printStackTrace();return ;}try {InputStream is = getResources().getAssets().open(dbName);OutputStream os = new FileOutputStream(dbPath);byte[] buffer = new byte[1024];int length = 0;while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}os.flush();os.close();is.close();} catch (IOException e) {e.printStackTrace();}Toast.makeText(getApplicationContext(), "拷贝成功", Toast.LENGTH_LONG).show();}

代码不是很严谨,凑活着看哈。经过以上步骤,我们就可以开始使用数据库,数据库的常用操作,在以后的博客中继续。


ChinaCity.db数据库:下载

热点排行