Как я вывожу данные некоторых таблиц SQLite3?

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

175
задан 5 revs, 3 users 54% 27 June 2015 в 14:22
поделиться

5 ответов

Вы не говорите, что Вы хотите сделать с выведенным файлом.

я использовал бы следующее для получения файла CSV, в который я могу импортировать почти все

.mode csv 
-- use '.separator SOME_STRING' for something other than a comma.
.headers on 
.out file.csv 
select * from MyTable;

, Если Вы хотите повторно вставить в различную базу данных SQLite тогда:

.mode insert <target_table_name>
.out file.sql 
select * from MyTable;
209
ответ дан Calaf 23 November 2019 в 20:25
поделиться

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

Пример псевдо код:

SELECT 'INSERT INTO ' || tableName || ' VALUES( ' || 
  {for each value} ' quote(' || value || ')'     (+ commas until final)
|| ')' FROM 'tableName' ORDER BY rowid DESC

См.: src/shell.c:838 (для sqlite-3.5.9) для фактического кода

Вы могли бы даже просто взять ту оболочку и прокомментировать части схемы и использование это.

3
ответ дан harningt 23 November 2019 в 20:25
поделиться

Не лучшему способу, но в арендном договоре не нужны внешние инструменты (кроме grep, который является стандартным на *, отклоняют поля так или иначе)

sqlite3 database.db3 .dump | grep '^INSERT INTO "tablename"'

, но действительно необходимо сделать эту команду для каждой таблицы, которую Вы ищете все же.

Примечание, что это не включает схему.

38
ответ дан spacediver 23 November 2019 в 20:25
поделиться

Вы могли сделать выбор на таблицах, вставляющих запятые после каждого поля, чтобы произвести csv или использовать инструмент GUI, чтобы возвратить все данные и сохранить его к csv.

-3
ответ дан 23 November 2019 в 20:25
поделиться

В специальной команде .dump можно указать один или несколько аргументов таблицы, напримерsqlite3 db ".dump 'table1' 'table2'"".

.
34
ответ дан 23 November 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: