AssetDatabaseOpenHelper 数据库工具类
来源:互联网 发布:2017年新出的网络剧 编辑:程序博客网 时间:2024/04/30 12:44
package cn.trinea.android.common.util;import java.io.File;import java.io.IOException;import java.io.InputStream;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteException;/** * AssetDatabaseOpenHelper * <ul> * <li>Auto copy databse form assets to /data/data/package_name/databases</li> * <li>You can use it like {@link SQLiteDatabase}, use {@link #getWritableDatabase()} to create and/or open a database * that will be used for reading and writing. use {@link #getReadableDatabase()} to create and/or open a database that * will be used for reading only.</li> * </ul> * * @author <a href="http://www.trinea.cn" target="_blank">Trinea</a> 2013-12-5 */public class AssetDatabaseOpenHelper { private Context context; private String databaseName; public AssetDatabaseOpenHelper(Context context, String databaseName) { this.context = context; this.databaseName = databaseName; } /** * Create and/or open a database that will be used for reading and writing. * * @return * @throws RuntimeException if cannot copy database from assets * @throws SQLiteException if the database cannot be opened */ public synchronized SQLiteDatabase getWritableDatabase() { File dbFile = context.getDatabasePath(databaseName); if (dbFile != null && !dbFile.exists()) { try { copyDatabase(dbFile); } catch (IOException e) { throw new RuntimeException("Error creating source database", e); } } return SQLiteDatabase.openDatabase(dbFile.getPath(), null, SQLiteDatabase.OPEN_READWRITE); } /** * Create and/or open a database that will be used for reading only. * * @return * @throws RuntimeException if cannot copy database from assets * @throws SQLiteException if the database cannot be opened */ public synchronized SQLiteDatabase getReadableDatabase() { File dbFile = context.getDatabasePath(databaseName); if (dbFile != null && !dbFile.exists()) { try { copyDatabase(dbFile); } catch (IOException e) { throw new RuntimeException("Error creating source database", e); } } return SQLiteDatabase.openDatabase(dbFile.getPath(), null, SQLiteDatabase.OPEN_READONLY); } /** * @return the database name */ public String getDatabaseName() { return databaseName; } private void copyDatabase(File dbFile) throws IOException { InputStream stream = context.getAssets().open(databaseName); FileUtils.writeFile(dbFile, stream); stream.close(); }}
0 0
- AssetDatabaseOpenHelper 数据库工具类
- 数据库工具类
- 数据库的工具类!
- 数据库工具类MyUtils
- 数据库操作工具类
- 数据库工具类:DatabaseHelper
- 数据库工具类
- 数据库工具类DBUtil
- 数据库操作工具类
- 数据库操作工具类
- Mysql数据库工具类
- 数据库工具类封装
- 数据库工具类
- 数据库工具类实现
- 连接数据库工具类
- java数据库工具类
- DBUtil 数据库工具类
- DBUtils数据库工具类
- [原]iOS--字符编码,NSString和UTF-8间的转换
- Impala005-Impala SQL操作内部表和外部表
- xcode 7 错误:CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG
- 第8周 项目2—建立链串算法库
- asp jquery ajxs json和jsonp跨域请求
- AssetDatabaseOpenHelper 数据库工具类
- ant的讲解
- 第六周项目2--建立链栈算法库
- 第七周—项目1 - 建立顺序环形队列算法库
- 顺序表
- 每天一个linux命令(33):df 命令
- 8位CRC 数据校验
- pod install速度慢 解决方案
- 一张表格让你掌握深圳无人机供应链