Android SQLite: создание и обновление строк из базы данных - PullRequest
0 голосов
/ 14 ноября 2018

Я использую библиотеку https://github.com/jgilfelt/android-sqlite-asset-helper для предварительно заполненной базы данных в приложении.Когда я хочу обновить несколько строк, в документации сказано, что я должен написать скрипт для этого.Есть ли другой способ для этого, потому что есть около 200+ строк, которые я хочу обновить.Я не могу заменить базу данных новой, потому что в ней уже есть пользовательские данные в других таблицах.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Нет.Это один из способов, но не единственный.Другим хорошим способом является отправка им новых данных в новую базу данных.Затем, после загрузки, скопируйте данные из новой базы данных в старую, используя механику upsert.Это обновит данные до новой информации без потери строк, вставленных пользователем.Конечно, если вам нужно беспокоиться об изменениях, внесенных пользователем, вам нужно найти способ обнаружить это и решить конфликт.

0 голосов
/ 14 ноября 2018

Короче говоря, нет SQL, как вы взаимодействуете с базой данных.

Однако одно единственное ОБНОВЛЕНИЕ может обновить каждую строку.

Кроме того, существуют удобные методы, такие как метод обновления, который создает SQL.

Например, скажем, у вас есть таблица с именем mytable , в которой есть столбец с именем name , и вы хотите изменить все вхождения joe на Joseph тогда SQL может быть: -

String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";

Теперь, предположив, что у вас есть экземпляр SQLiteDatabase с именем db , вы можете использовать: -

db.execSQL(sql);

Также вы можете использовать: -

String wherecluase = "name =?";
String[] whereargs = new String[]{"joe"};
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
  • Это создает и выполняет SQL, как указано выше.
  • Это может показаться более скучным, однако есть преимущества в использовании этого метода, например.
    • возвращает количество строк, которые были обновлены,
    • предлагает защиту от SQL-инъекций,
    • правильно закрывает / экранирует данные
    • SQL будет синтаксически правильным.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...