当前位置: 代码迷 >> Android >> 如何访问assets文件夹上的数据库文件?
  详细解决方案

如何访问assets文件夹上的数据库文件?

热度:59   发布时间:2016-05-01 11:49:45.0
怎么访问assets文件夹下的数据库文件???

//本来这样写的,但是每次运行都要把db文件导入到/data/data/com.xx.demo_weather,有没有其他方法??
db = SQLiteDatabase.openOrCreateDatabase(
    "/data/data/com.xx.demo_weather/chinacity.db", null);
anroid 数据库

------解决方案--------------------
 SQLiteDatabase db = TestActivity.openDatabase(c);
这个是什么?

一般在android里面使用数据库的话最好要实现一个一个继承SQLiteOpenHelper的类,用来管理数据库建立之类的。我之前实现了一个类,不过没有继承SQLiteOpenHelper,哈哈,如果可以最好是继承它啦。给你参考一下。
package com.***.***;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.os.Environment;
import android.util.Log;

public class DatabaseAdapter {
private static final String TAG = "DatabaseAdapter";

    public static final int BUFFER_SIZE = 400000;
    
    public static final String PACKAGE_NAME = "com.***.***";//你的包名
    
    public static final String DB_PATH = "/data"+Environment.getDataDirectory().getAbsolutePath()
                                  +"/"+PACKAGE_NAME;

public static final String CHANNEL_IDC = "channel_id";//数据库里面的列名

public static final String CHANNEL_NAME = "channel_name";//数据库里面的列名

public static final String CHANNEL_NUMBER = "channel_number";//数据库里面的列名

public static final String FREE = "free";//数据库里面的列名

public static final String  TYPE_ID = "type_id";//数据库里面的列名

public static final String ADDRESS_ID = "address_id";//数据库里面的列名

public static final String URL = "url";//数据库里面的列名

public static final String URLTYPE = "urlType";//数据库里面的列名

public static final String CHANNEL_IDA = "channel_id";//数据库里面的列名

private static final String DB_NAME = "***.db";//数据库名字

private static final String DB_TABLEC = "***";//数据库里面表的名字

private static final String DB_TABLEA = "***";//数据库里面表的名字

private static final int DB_VERSION = 1;

private Context mContext = null;

private SQLiteDatabase db = null;
    private String filename = DB_PATH+"/"+DB_NAME;


public DatabaseAdapter(Context context) {
mContext = context;
}
    
 public void open()throws SQLException
  相关解决方案