Управление соединениями SQLite в Android - PullRequest
18 голосов
/ 01 марта 2011

У меня (надеюсь) быстрый вопрос, касающийся обработки соединений с базой данных SQLite в Android.У меня есть приложение, которое состоит, естественно, из нескольких видов деятельности.У меня нет проблем с созданием / обновлением / запросом базы данных, так как я создал отдельный выделенный класс для обработки этой работы через SQLiteOpenHelper и т. Д.

Мой вопрос заключается в следующем: поскольку все эти действия совместно используют одну и ту же базуэто обычно реализуется как один статический член, или каждому действию должно быть свое собственное соединение?Конечно, меня беспокоит стоимость повторного подключения к базе данных в каждом действии.

Или, другими словами, есть ли причина не хранить только один экземпляр?

I 'Мне также интересно, происходит ли что-то закулисное, подобное пулу соединений .NET, чтобы снизить стоимость открытия соединений.

Заранее спасибо!

Ответы [ 2 ]

13 голосов
/ 01 марта 2011

Открытие соединения в SQLite составляет около 0,2 мс.

Лучшая практика подсказывает нам открывать и закрывать соединение каждый раз, когда оно нам нужно.

9 голосов
/ 01 марта 2011

Просто используйте SQLiteOpenHelper.getReadableDatabase () и SQLiteOpenHelper.getWriteableDatabase () - Android будет управлять и кэшировать соединение, поэтому вам не нужно.

На самом деле, обратитесь к официальной Google Использование баз данных Документация:

Чтобы писать и читать с база данных, вызовите getWritableDatabase () и getReadableDatabase (), соответственно. Они оба возвращают SQLiteDatabase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...