添加自己的SQLite数据库Android应用程序 [英] adding your own SQLite database to an android application

查看:143
本文介绍了添加自己的SQLite数据库Android应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们怎么能我们自己的SQLite数据库添加到Android项目??

how can we add our own SQLite database to an android project??

推荐答案

试试这个code:

 public class DataBaseHelper extends SQLiteOpenHelper{
private Context mycontext;

//private String DB_PATH = mycontext.getApplicationContext().getPackageName()+"/databases/";
private static String DB_NAME = "(datbasename).sqlite";//the extension may be .sqlite or .db
public SQLiteDatabase myDataBase;
/*private String DB_PATH = "/data/data/"
                        + mycontext.getApplicationContext().getPackageName()
                        + "/databases/";*/

public DataBaseHelper(Context context) throws IOException  {
super(context,DB_NAME,null,1);
this.mycontext=context;
boolean dbexist = checkdatabase();
if(dbexist)
{
    //System.out.println("Database exists");
    opendatabase(); 
}
else
{
    System.out.println("Database doesn't exist");
createdatabase();
}

}

public void createdatabase() throws IOException{
boolean dbexist = checkdatabase();
if(dbexist)
{
    //System.out.println(" Database exists.");
}
else{
    this.getReadableDatabase();
try{
        copydatabase();
    }
    catch(IOException e){
        throw new Error("Error copying database");
    }
}
}
private boolean checkdatabase() {
//SQLiteDatabase checkdb = null;
boolean checkdb = false;
try{
    String myPath = DB_PATH + DB_NAME;
    File dbfile = new File(myPath);
    //checkdb = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE);
    checkdb = dbfile.exists();
}
catch(SQLiteException e){
    System.out.println("Database doesn't exist");
}

return checkdb;
}
private void copydatabase() throws IOException {

//Open your local db as the input stream
InputStream myinput = mycontext.getAssets().open(DB_NAME);

// Path to the just created empty db
String outfilename = DB_PATH + DB_NAME;

//Open the empty db as the output stream
OutputStream myoutput = new FileOutputStream("/data/data/(packagename)/databases/(datbasename).sqlite");

// transfer byte to inputfile to outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myinput.read(buffer))>0)
{
    myoutput.write(buffer,0,length);
}

//Close the streams
myoutput.flush();
myoutput.close();
myinput.close();

}

public void opendatabase() throws SQLException
{
//Open the database
String mypath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);

}



public synchronized void close(){
if(myDataBase != null){
    myDataBase.close();
}
super.close();
}

这篇关于添加自己的SQLite数据库Android应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆