Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.johhnyfrog.myapplication;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- public class DataBaseHelper extends SQLiteOpenHelper
- {
- private static String TAG = "DataBaseHelper"; // Tag just for the LogCat window
- //destination path (location) of our database on device
- private static String DB_PATH = "";
- private static String DB_NAME ="domande";// Database name
- private SQLiteDatabase mDataBase;
- private final Context mContext;
- public DataBaseHelper(Context context)
- {
- super(context, DB_NAME, null, 1);// 1? Its database Version
- if(android.os.Build.VERSION.SDK_INT >= 17){
- System.out.println(context.getApplicationInfo().dataDir);
- DB_PATH = context.getApplicationInfo().dataDir + "/databases/";
- }
- else
- {
- DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
- }
- this.mContext = context;
- }
- @Override
- public void onCreate(SQLiteDatabase mDataBase){} //aggiunto perchè altrimente chiede che sia una classe astratta
- public void onUpgrade(SQLiteDatabase db, int p,int d){db.execSQL("DROP TABLE IF EXISTS libri");
- onCreate(db);} //aggiunto perchè altrimente chiede che sia una classe astratta
- public void createDataBase() throws IOException
- {
- //If the database does not exist, copy it from the assets.
- boolean mDataBaseExist = checkDataBase();
- if(!mDataBaseExist)
- {
- this.getWritableDatabase();
- this.close();
- try
- {
- //Copy the database from assests
- copyDataBase();
- Log.e(TAG, "createDatabase database created");
- }
- catch (IOException mIOException)
- {
- throw new Error("ErrorCopyingDataBase");
- }
- }
- }
- //Check that the database exists here: /data/data/your package/databases/Da Name
- private boolean checkDataBase()
- {
- File dbFile = new File(DB_PATH + DB_NAME);
- //Log.v("dbFile", dbFile + " "+ dbFile.exists());
- return dbFile.exists();
- }
- //Copy the database from assets
- private void copyDataBase() throws IOException
- {
- InputStream mInput = mContext.getAssets().open(DB_NAME);
- String outFileName = DB_PATH + DB_NAME;
- OutputStream mOutput = new FileOutputStream(outFileName);
- byte[] mBuffer = new byte[1024];
- int mLength;
- while ((mLength = mInput.read(mBuffer))>0)
- {
- mOutput.write(mBuffer, 0, mLength);
- }
- mOutput.flush();
- mOutput.close();
- mInput.close();
- }
- //Open the database, so we can query it
- public boolean openDataBase() throws SQLException
- {
- String mPath = DB_PATH + DB_NAME;
- //Log.v("mPath", mPath);
- mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.CREATE_IF_NECESSARY);
- //mDataBase = SQLiteDatabase.openDatabase(mPath, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS);
- return mDataBase != null;
- }
- @Override
- public synchronized void close()
- {
- if(mDataBase != null)
- mDataBase.close();
- super.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement