Все учебники, которые я видел об использовании SQLite db в Android, создают сами базу данных. Это похоже на то, что это требование. Невозможно создать db с помощью SQLite workbench и установить его в папки приложений Android в правильном месте?Создание или установка базы данных SQLite в приложении для Android
0
A
ответ
2
IT возможно.
Просто создайте базу данных SQLite и поместите ее в свою папку с ресурсами.
Когда приложение запускается, просто проверьте, существует или нет db, и создайте его, если его не существует.
public String DB_PATH = null;
public final static String DB_NAME = "mye.db"; //take note this is in your asset folder
private static final int DB_VERSION = 1;
private SQLiteDatabase myDatabase;
private Context myContext = null;
public DBAdapter(Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.myContext = context;
DB_PATH = "/data/data/" + context.getPackageName() + "/databases/";
}
/**
* Creates a empty database on the system and rewrites it with your own
* database.
* */
public void createDataBase() throws IOException {
this.getReadableDatabase();
try {
copyDatabase();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
/**
* Copy DB from ASSETS
*/
public 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.flush();
myOutput.close();
myInput.close();
}
/**
* Opens Database . Method is synhcronized
* @throws SQLException
*/
public synchronized void openDatabase() throws SQLException {
String dbPath = DB_PATH + DB_NAME;
myDatabase = SQLiteDatabase.openDatabase(dbPath, null,
SQLiteDatabase.OPEN_READWRITE);
}
/**
* Closes database.
* Method is synchronized for protection
*/
@Override
public synchronized void close() {
if (myDatabase != null) {
myDatabase.close();
}
super.close();
}
/**
* Check if the database exists
*
* @param cntx
* @return true/false
*/
public boolean checkDatabase(Context cntx) {
File dbFile = cntx.getDatabasePath(DB_NAME);
// Log.e("zeus", "Check db returns : " + dbFile.exists());
return dbFile.exists();
}
В вашей основной деятельности или класс, расширяющий приложение просто получить экземпляр вашей DBAdapter и проверить, если БД существует.
mDBAdapter = new DBAdapter(getApplicationContext());
if (!mDBAdapter.checkDatabase(getApplicationContext())) {
try {
mDBAdapter.createDataBase();
} catch (IOException e) {
e.printStackTrace();
}
}
0
Невозможно создать db с помощью инструментария SQLite и установить его в папках приложений Android в правильном месте?
Добро пожаловать, пожалуйста, using SQLiteAssetHelper
как средство упаковки и развертывания базы данных.
Обычно это делается только в том случае, если у вас есть важные данные, которые вы хотите упаковать вместе с приложением.
Смежные вопросы
- 1. Просмотр базы данных Android SQLite в приложении
- 2. SQL или SQLite для базы данных android
- 3. Создание локальной базы данных в приложении android
- 4. Sqlite Создание базы данных, Лучшая практика Android
- 5. Базы данных Android SQLite
- 6. Android: Создание базы данных SQLite с отношениями
- 7. Максимальный размер базы данных SQLite в приложении для Android
- 8. Android sqlite создание ошибки базы данных
- 9. Реализация базы данных SQLite в приложении для Android
- 10. Обновление базы данных в приложении для Android с использованием SQLite
- 11. Динамическое создание базы данных SQLite
- 12. Создание базы данных Android
- 13. Создание расчета в приложении для Android с использованием базы данных
- 14. Чтение данных из базы данных Sqlite в приложении android.
- 15. Основы базы данных Android SQlite
- 16. Защита базы данных SQLite в приложении UWP
- 17. Создание базы данных в JDBC Sqlite
- 18. Какое должно быть местоположение базы данных sqlite в приложении Android?
- 19. Android Установка значений базы данных sqlite в listview
- 20. Соединение базы данных SQLite в android
- 21. Обновление базы данных Android SQLite
- 22. Создание базы данных в android
- 23. отображение специальных символов в приложении android из базы данных sqlite
- 24. создание базы данных в sqlite с cordova
- 25. Экспорт базы данных SQLite Android
- 26. Запрос базы данных android sqlite
- 27. Проблема с использованием внешней базы данных sqlite в приложении android
- 28. Обновление базы данных в приложении для Android
- 29. SQLite в приложении для Android
- 30. Обновление базы данных в приложении для Android
И как разместить его в папке с активами? Когда я подключу телефон к своему компьютеру, я не могу найти такую папку? – ProfK
Я не уверен, что вы поняли, что я написал. В вашей структуре папок приложения у вас есть src/libs/res и т. Д. Также должна быть папка с именем «assets», если ее нет, создайте ее и поместите там свою базу данных. –