Подключение к переменной базы данных с другого активити

264
23 июня 2017, 07:17

Подключение к БД идет через DataBaseHelper.java В MainActivity.java идет подключение к БД через следующий код.

    SQLiteDatabase db;
    DataBaseHelper myDbHelper = new DataBaseHelper(this);
    myDbHelper = new DataBaseHelper(this);
    try {
        myDbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }
    try {
        myDbHelper.openDataBase();
    }catch(SQLException sqle){
        throw sqle;
    }
    db = myDbHelper.getWritableDatabase();

Теперь добавляется вторая активити со своим джава-файлом. Этот активити тоже будет подключатся к этой же БД. Теперь мне там надо этот код подключения продублировать, т.е. заново подключится к БД? Или же могу сразу подключатся через переменную db сделав его в первом активити public? Если да, то какой из вариантов лучше?

Answer 1

Я не знаю, сработает ли, но можно передать в другое активити объект с помощью putExtra.

Но лучше будет закрыть соединение с БД перед переключением в другое активити, при этом действия с базой данных производить из экземляра отдельного класса с помощью геттера.

public class MyDbConnect {
    private SQLiteDatabase db;
    public MyDbConnect(android.content.Context c) {
        DataBaseHelper myDbHelper = new DataBaseHelper(c);
        myDbHelper = new DataBaseHelper(c);
        try {
            myDbHelper.createDataBase();
        } catch (IOException ioe) {
            throw new Error("Unable to create database");
        }
        try {
            myDbHelper.openDataBase();
        } catch (SQLException sqle) {
            throw sqle;
        }
        db = myDbHelper.getWritableDatabase();
    }
    public SQLiteDatabase getDb() {return db;}
}
READ ALSO
Работа RelativeLayout: RelativeLayout.RIGHT_OF

Работа RelativeLayout: RelativeLayout.RIGHT_OF

Хочу создать следующую конструкцию: в LinearLayout RelativeLayout, в котором ImageView, а справа от ImageView TextViewЭто должно создаваться динамически, код:

164
Android Palette

Android Palette

От сервера приходит картинка, на которую накладывается TextViewВот если картинка белая TextView должен быть черным, и наоборот

168
Помогите в составлении JPQL

Помогите в составлении JPQL

Найти звезду, сумма ядерных температур планет которой наибольшаяSql запрос будет выглядеть так:

170