0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
1

Работа с БД android

15.03.2016, 20:56. Показов 2138. Ответов 18

Author24 — интернет-сервис помощи студентам
Хочу сделать объемный проект, в нем будет много запросов к БД. Это будет мой первый серьезный андроид-проект!
Можно сказать, что все будет базироваться на выборках з БД(SQLite). Программа не будет работать с сетью.
Уже продумал запроси, почти всю логику, но есть вопрос по-поводу работы с БД в андроид!

Как лучше сделать: работать с готовой БД или сделать ее программно в коде ??? Как работают с большими БД, точнее говоря, як с ними обращаются в коде ? (Если можно толковою статтю)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2016, 20:56
Ответы с готовыми решениями:

Работа с файлами android которые находятся не в папке проекта Android Studio
Всех приветствую, начал разработку приложения под Android и не могу разобраться как работать с...

Работа с календарем в Android
Здравствуйте. Сразу к вопросам: 1) Как подключить календарь. 2) Как брать допустим число и месяц...

Работа с Android Studio
Всем привет. Понимаю, что мой вопрос звучит глупо. Тем более, что данная тема поднималась ни раз....

Работа с камерой в Android
Всем привет. Сразу говорю - на java не писал никогда - только delphi и немного C++. Хочется...

18
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
15.03.2016, 21:30 2
Создаете БД на других совтах, благо их много и бесплатных. Готовую БД сбрасывает в папку assets, затем ее нужно скопировать при первом запуске приложения, и уже с ней работать. Заполнять базу программно из приложения, даже не думайте, это для примеров.
примеры посмотрите здесь

http://ru-code-android.livejournal.com/3923.html
http://startandroid.ru/ru/
http://developer.alexanderklim... tabase.php
0
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
17.03.2016, 23:02  [ТС] 3
Alex_Fedor, то есть работать лучше с уже готовой БД созданной предварительно ?
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
18.03.2016, 08:34 4
Цитата Сообщение от Alex_Fedor Посмотреть сообщение
Заполнять базу программно из приложения, даже не думайте
Что за чушь!!!
Можно (и нужно) заполнять БД программно путем парсинга текстовых файлов из папки assets. Если нужно добавить или изменить какую либо строку, вы будете запускать "другие совты", копипастить файл бд? Проще изменить текстовый файлик.
Из личного пыта.
1
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
18.03.2016, 12:10 5
Лучший ответ Сообщение было отмечено prokopov как решение

Решение

Цитата Сообщение от Rube Посмотреть сообщение
Если нужно добавить или изменить какую либо строку, вы будете запускать "другие совты", копипастить файл бд?
Именно. Особенно, если количество записей стремится к миллиону.
2
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
18.03.2016, 20:33  [ТС] 6
Rube, а если бд большая.? Не проще где-то ее сделать, а потом использовать ?
0
91 / 86 / 12
Регистрация: 08.08.2013
Сообщений: 667
19.03.2016, 12:25 7
prokopov, что такое "большая"?
для каждого своё представление о "большом".
Конкретнее сколько таблиц\записей\мб
0
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
19.03.2016, 22:30 8
Советую использовать библиотеку Realm, упростит жизнь в сто раз. https://realm.io/docs/java/latest/
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
20.03.2016, 09:32 9
Цитата Сообщение от prokopov Посмотреть сообщение
Не проще где-то ее сделать, а потом использовать ?
Проще, только я сомневаюсь что вы все правильно сделаете за один раз.
0
0 / 0 / 2
Регистрация: 19.04.2015
Сообщений: 92
20.03.2016, 12:53  [ТС] 10
Rube, с этим я согласен! Но, например, делать 8 таблиц в java классе не очень комфортно и быстро !
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
21.03.2016, 09:59 11
prokopov, а вы вообще пробовали начать? Поля то все равно придется прописывать. Я на этих БД собаку можно сказать съел, так что начните делать как вам посоветовали.
0
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
21.03.2016, 11:58 12
Цитата Сообщение от Rube Посмотреть сообщение
на этих БД собаку можно сказать съел, так что начните делать как вам посоветовали.
Не могли бы вы привести пример, желательно с кодом. Все просто БД состоит из 2 одинаковых таблиц в которых 5 столбцов, ну и скажем 100 записей. Как это все без особых проблем заполнить программно. Вопрос не праздный занят тем что заполняю БД для своего приложения, там порядка 3000 записей. Даже не представляю как это без напряга делать из кода.
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
21.03.2016, 12:46 13
БД надеюсь вы создавать умеете, таблицы и поля тоже. Если нет, то в сети масса примеров. Далее:
Кладете в assets 2 файла, напр. tab1.txt и tab2.txt (формат строк такой: запись1|запись2|запись3|... и т.д.)
В классе создания БД после создания таблиц пишите следующее:
Java
1
2
3
4
5
6
7
8
9
10
String n[];
cv = new ContentValues();
br = new BufferedReader(new InputStreamReader(context.getAssets().open("tab1.txt"), "Cp1251"));
while ((String temp = br.readLine()) != null) {
    n = temp.split("\\|"); // сплит строки
    cv.put(COLUMN_0, n[0]);
    cv.put(COLUMN_2, n[1]);
    cv.put(COLUMN_3, n[2]);
    db.insert(TABLE_0, null, cv);
}
0
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
21.03.2016, 13:30 14
Не я попроще, создаю в SQL редакторе БД со всеми таблицами. Там же таблицы заполняю, Готовую БД копирую в assets. Далее из кода БД копирую на устройство и уже с ней работаю. Как описано здесь

Добавлено через 7 минут
блин чего то ссылка неправильно вставилась, можно погуглить. Как подключить внешнюю базу данных SQLite в Android
0
22 / 7 / 2
Регистрация: 26.10.2012
Сообщений: 212
Записей в блоге: 1
18.05.2016, 21:24 15
Цитата Сообщение от Alex_Fedor Посмотреть сообщение
Не я попроще, создаю в SQL редакторе БД со всеми таблицами. Там же таблицы заполняю, Готовую БД копирую в assets. Далее из кода БД копирую на устройство и уже с ней работаю.
Тоже интересует этот вопрос! Можно в этом месте просветить пару моментов?

1. Значит, представим я создал БД сторонними средствами и скопировал её в папку assets. Кстати, папки assets нет в проекте и надо создать её руками. Я создавал в контекстном меню по правой кнопке мыши в папке res, но папка создалась всё равно выше уровнем, в src. Так и должно быть? Если да, поедем дальше.

2. Копируем туда мою db.sqlite

3. При развёртывании приложения (установке apk) на устройстве она скопируется в data/data/%my package name%/databases?
http://stackoverflow.com/questions/9227110/android-where-is-sqlite-database-stored

4. Далее уже как обычно с помощью наследования класса SQLiteOpenHelper можно открыть базу и работать с ней?
Миниатюры
Работа с БД android  
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
18.05.2016, 21:46 16
Rube, а я так и не смог последнюю БД запихнуть в приложение >1млн записей, полный вес с индексами 350мб
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
20.05.2016, 11:17 17
YuraAAA, была у меня похожая ситуация, только с файлом csv. Требовалось разово выдернуть некие данные по условиям. Начал импортировать в access и посыпались ошибки. В итоге просто написал небольшой скрипт на Autohotkey и за 5 мин получил требуемое. Можно думаю и батником было но не силен я в нем.
0
22 / 7 / 2
Регистрация: 26.10.2012
Сообщений: 212
Записей в блоге: 1
27.09.2016, 12:00 18
Подскажите пожалуйста насколько распространена БД Realm на Android? Является ли она полноценной заменой SQLiteOpenHelper/SQLiteAssetHelper?
0
0 / 0 / 0
Регистрация: 18.07.2015
Сообщений: 8
27.09.2016, 12:16 19
Цитата Сообщение от dajver Посмотреть сообщение
Советую использовать библиотеку Realm, упростит жизнь в сто раз. https://realm.io/docs/java/latest/
Подскажите, а есть ли какой-то нормальный Realm Browser для виндовс? Я только пока для мак встретил.
0
27.09.2016, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2016, 12:16
Помогаю со студенческими работами здесь

Работа с jpeg на android
Какой можно подключить модуль для работы с изображениями на андроид, сам JPEG только для vcl

Работа с процессами Android
Привет друзья нуждаюсь в вашей помощи. Задача в общем такая есть приложение которое работает без...

Работа с графикой в Android
есть такой код: @Override public void onCreate(Bundle savedInstanceState) { ...

Работа с GSM в Android
Делаю небольшой проект для телефона. Собирается информация о телефоне, сети и уровне сигнала,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru