При доступе к репозиторию ormlite в нескольких действиях должно быть несколько экземпляров, один экземпляр или что?

1

Я использую образец, предоставленный James Morgan DemoORMLiteAndroid, который имеет одно действие, которое создает экземпляр репозитория.

для справки

public class Repository {
    private Dao<Room, Integer> roomDao;

    public Repository(final DatabaseHelper databaseHelper) {
        this.roomDao = getRoomDao(databaseHelper);
        ...

и в деятельности

public class RoomActivity extends OrmLiteBaseListActivity<DatabaseHelper> {
    private Repository repository;
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.repository = new Repository(getHelper());
    }
        ...
        this.repository.clearData();
        ...etc..

Как получить доступ к репозиторию в других действиях или классах?

Теги:
ormlite

1 ответ

0
Лучший ответ

Я не уверен, что это отличный ответ @Кевин, но здесь все идет.

ORMLite имеет пару базовых классов, которые помогают при загрузке баз Android.

  • OrmLiteBaseActivity
  • OrmLiteBaseActivityGroup
  • OrmLiteBaseListActivity
  • OrmLiteBaseService
  • OrmLiteBaseTabActivity

Вот Javadocs для них: http://ormlite.com/javadoc/ormlite-android/

Все эти базовые классы - это утилиты, которые помогают управлять классом DatabaseHelper который расширяет OrmLiteSqliteOpenHelper. Вам нужен только один экземпляр класса-помощника, поскольку он управляет соединением с базой данных, которая передается с помощью onCreate().

Метод onCreate() - это то, что получает связанную с приложением Android SQLiteDatabase приложение, которое необходимо для ORMLite для обертывания внутри кода подключения к базе данных.

Если вы спросите более конкретно то, что вы пытаетесь выполнить, я отредактирую свой ответ, чтобы включить дополнительную информацию.

  • 0
    Спасибо за ответ. Я прочитал документы, и все отлично работает. Моя проблема (необоснованная?) Связана с созданием более одного экземпляра репозитория - это вызовет проблемы с производительностью или приведет к потере соединений с sqlite?
  • 0
    Когда вы говорите «хранилище», вы говорите о нескольких базах данных SQLite? Если вы просто говорите о своих вспомогательных классах, то, пока они все используют один и тот же экземпляр DatabaseHelper , у вас все будет хорошо. Проблемы возникают при наличии нескольких подключений к базе данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню