1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| public class DatabaseHelper extends SQLiteOpenHelper{
//The Android's default system path of your application database.
private String DB_PATH;
private static String DB_NAME = "npb.sqlite";
private static final Integer DB_VERSION = 2;
private static String TABLE_LISTELEC = "npb";
private SQLiteDatabase mydb;
private final Context myContext;
/**
* Constructor
* Takes and keeps a reference of the passed context in order to access to the application assets and resources.
* @param context
*/
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.myContext = context;
DB_PATH = "/data/data/com.importdatabase/databases/";
//mydb = getReadableDatabase();
createDataBase();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void createDataBase() throws IOException{
boolean dbExist = checkDataBase();
if(dbExist){
//do nothing - database already exist
}else{
//By calling this method and empty database will be created into the default system path
//of your application so we are gonna be able to overwrite that database with our database.
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
e.printStackTrace();
}
}
openDatabase();
}
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(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.close();
myOutput.flush();
myInput.close();
}
public void openDatabase() throws SQLException {
//Open the database
Log.i("test","on va instancier mydb");
String myPath = DB_PATH + DB_NAME;
mydb = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
Log.i("test","mydb="+mydb);
}
private boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}catch(SQLiteException e){
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}
@Override
public synchronized void close() {
if(mydb != null)
mydb.close();
super.close();
}
public ArrayList<String> getPersonnes() {
ArrayList<String> output = new ArrayList<String>();
String[] colonnesARecup = new String[] { "nom", "prenom" };
Cursor cursorResults = mydb.query(TABLE_LISTELEC, colonnesARecup, null,
null, null, null, "nom asc, prenom asc", null);
while (cursorResults.moveToFirst())
{
output.add(cursorResults.getString(0) + " " + cursorResults.getString(1));
}
return output;
}
} |
Partager