БД совсем как тёмный лес.

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

БД совсем как тёмный лес.

Сообщение Null » 15 окт 2013, 19:25

Я не думала что всё будет ТАК сложно, с такими темпами разработки (а ещё и времени не очень много остаётся) понять всё детально не получается.
Вопросов тьма, таки помогите, кто чем может :roll:


В общем, немного организационных вопросов:

1) Моя БД должна хранить слово на английском и его перевод на русском, т.е., 2 слова хранить. Это, как я поняла, 1 таблица, 2 поля. Верно? А если у меня будет список слов, т.е., должно быть 3 строки. А потом создали другой список - другая таблица или другая БД, или что будет другим?
2) БД в eclipse сама создаться, т.е., мне не нужно ничего докачивать и устанавливать для работы с БД, верно?
3) У меня есть кнопка "создать список", по нажатию этой кнопки я перейду на новую активити и буду там создавать свой список. На новой активити есть два поля для текста (кстати, в эклипсе не поняла какие именно использовать, взяла такие "EditText" - пойдёт? Или что-то из стандартных можно\нужно взять?) и есть кнопка "создать". Так вот. Этот активити имеет свой класс - ну, в общем, ещё один файлик. Мне где БД надо прописывать? В этом классе, к которому привязана новая активити, или надо создать ещё один класс?

4) Где я могу очень очень подробно прочитать про БД к андроиду, чтобы разобраться какие функции за что отвечают, и как вообще её создать? Или может мне кто-нибудь помочь ооооочень пошагово расписать алгоритм создания БД, которая состоит из 2 полей, у которой должны быть функции удаления, создания и поиска ... поля?строки? элемента? - в общем вот.

дооооо, всё очень и очень запущенно. :?

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: БД совсем как тёмный лес.

Сообщение trew » 15 окт 2013, 19:37

А в чём проблема посмотреть уроки с 34
http://startandroid.ru/ru/uroki/vse-uro ... qlite.html
Что касается базы данных, используются sql- запросы.
Для андройда - используется, как правило база SQLite.
Её синтаксис sql похож на mysql, ms sql, sql для oracle. (основные команды)

Смотрите в интернете любые книги по SQL.
Освоив основы, можете приступать к написанию программы.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 15 окт 2013, 20:03

я тоже не поняла в чем проблема почитать тут уроки? Из них половина вопросов отпадет, с остальной (и получившимся кодом) сюда идти уже.
По проектировке бд.
Если у тебя пары слов будут храниться - то это три поля минимум.
_id word1 word2
***
если же ПАРЫ слов могут принадлежать разным спискам, причем 1 пара слов может входить ТОЛЬКО В 1 список (ситуация один-ко-многим), то добавляем еще таблицу
_id name_of_list
и переделываем первую, добавив еще одно поле
_id word1 word2 id_list
где id_list - это _id из таблицы с наименованиями списков.
Например
1 таблица будет содержать
1 "у врача"
2 "в ресторане"
3 "в аптеке"
вторая таблица
1 doctor врач 1
2 pill таблетка 3
3 meat мясо 2
4 temperature температура 1
***
Может быть ситуация, когда любая пара слов (например, про пилюли) может входить в один или другой список или третий (врачи и аптека). Тогда понадобится еще одна таблица. (ситуация многие-ко-многим)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 15 окт 2013, 22:13

Проблема в том, что я несколько раз прочитала 34 урок, но не поняла/ не нашла ответы на эти вопросы .

Ну не понятно мне как это всё сделать, вот в чём проблема.

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 15 окт 2013, 22:18

Я не нашла в инете тотур, *хотя вру, вроде бы 1 был более путёвым*, как именно создать бд, вызвать, что работает, как рабоиает, о запросах. Мне попададись сайты с таким уклоном, будто я это знать должна, но я не знаю этого. Воооот в чём проблема. Мне бы тутор, чтобы всё по шагам, по пунктам, с полными объяснениями, интересно, такой тутор на русском языке есть?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: БД совсем как тёмный лес.

Сообщение rezak90 » 16 окт 2013, 01:09

могу книжку подсказать =)
R.id.team
Политика на форуме запрещена

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 16 окт 2013, 05:21

Rezak, конечно подсказывайте :)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: БД совсем как тёмный лес.

Сообщение rezak90 » 16 окт 2013, 08:15

Null писал(а):Rezak, конечно подсказывайте :)
http://rutracker.org/forum/viewtopic.php?t=4131435
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 16 окт 2013, 11:41

Слава, по правилам теперешним российским низя такие ссылки размещать, а то сайт закрыть могут ;) Это у вас там демократия)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: БД совсем как тёмный лес.

Сообщение rezak90 » 16 окт 2013, 11:46

Foenix писал(а):Слава, по правилам теперешним российским низя такие ссылки размещать, а то сайт закрыть могут ;) Это у вас там демократия)
ну и законы у вас, но как говорится это ваши законы))) своих я не нарушил 8-)
R.id.team
Политика на форуме запрещена

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 16 окт 2013, 11:49

ты ж на российской территории щас ;)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 16 окт 2013, 15:52

Спасибо большое за ссылку!))

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 20 окт 2013, 20:04

Так, прочитав десяток статей, в моей голове образовалась каша, которая вроде бы проходит стадию переваривания.
Обобщу:

1) Чтобы создать БД, мне нужен будет класс, только я до сих пор не поняла: класс то отдельно создавать или ниже в java файле писать?

Предположим, у меня есть файл MAIN.java, у main.xml есть кнопка перехода на другую активити.
есть CREATLIST.java и creatlist.xml. -- в этой актикивити, по идее, идёт создание таблиц в БД (т.е., таблиц может быть сколько угодно, а слова - 1 слово в одной таблице, т.е., если будут "копии" слов, то это уже не моя проблема, мне главное сделать кучку таблиц в одной БД).
и есть LIBLIST.java и liblist.xml, -- эта активити предназначена, чтобы отображать всё то, что хранится в БД в конкретной таблице.
(скорее всего, это будет выпадающий список + чекбоксы)

Так вот, - мне где\как делать БД? Отдельный класс (java файл), где-то у кого-то что-то прописывать, как?

2) предположим, БД будет в новом классе, т.е., вообще, новый java,

Код: Выделить всё

public class MyDatabaseHelper extends SQLiteOpenHelper
{
}
так, мне нужно будет определить два метода:

Код: Выделить всё

public void onCreate() {}

Код: Выделить всё

public void onUpgrade() {}
Что в () каждого мне нужно прописать?

и ещё: onCreate() - вызывается, когда БД создаём первый раз, onUpgrade() - когда надо апгрейдить БД.
onCreate() может вызваться тогда же, когда БД, по идее, есть. Или onCreate() именно для создания таблицы в БД?

3) В интернете нашла такие примеры:

Код: Выделить всё

    // создаем таблицу с полями
      db.execSQL("create table mytable ("
          + "id integer primary key autoincrement," 
          + "name text,"
          + "email text" + ");");

Код: Выделить всё

  private static final String DATABASE_NAME = "db.db";
        private static final int DATABASE_VERSION = 1;
        private static final String DEBUG_TAG = DatabaseOpenHelper.class.getSimpleName();
        private static final boolean LOGV = false;

        public DatabaseOpenHelper(Context context) {

                super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

   ........
                db.execSQL("CREATE TABLE " + Names.TABLE_NAME + " (" + BaseColumns._ID
                                + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , " + Names.NamesColumns.NAME
                                + " TEXT NOT NULL, " + Names.NamesColumns.AGE + " INTEGER NOT NULL, "
                                + Names.NamesColumns.FNAME + " TEXT NOT NULL );");
        }
Но всё равно остаётся загадкой "// создаем таблицу с полями" -- как это они создали? Алгоритм?



Ну, как-то так :|

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 20 окт 2013, 20:18

эх, книжку-то дали, а прочитать забыли.. там все это разжевано.
Что в () каждого мне нужно прописать?

и ещё: onCreate() - вызывается, когда БД создаём первый раз, onUpgrade() - когда надо апгрейдить БД.
onCreate() может вызваться тогда же, когда БД, по идее, есть. Или onCreate() именно для создания таблицы в БД?
это в уроке тут есть.
в общем, тут все это в уроках есть. Если бы ты взяла и повторила, что там написано, ни одного из этого вопроса не было бы.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 20 окт 2013, 21:39

Я повторила, прочитала, попыталась понять, но не получилось. Даже запустила, скомпилировала и посмотрела логи - всё работает, ура - ноя не могу понять "как это работает?".

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: БД совсем как тёмный лес.

Сообщение rezak90 » 20 окт 2013, 21:44

Null писал(а):но я не могу понять "как это работает?".
поверь, порой это не обязательно знать, работает - уже хорошо :D
R.id.team
Политика на форуме запрещена

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 20 окт 2013, 22:05

rezak90, от того, что я не понимаю "как", а тупо копирую чьи-то примеры, кто что-то в этом понимает, я не смогу сдвинуться с точки "тупой копипаст" до "сама понимаю, что делаю". Вот ведь в чём вопрос :)
Проблема в том, что БД ведь много где нужны в приложениях. Взять практически любое приложение - сплошные БД. Если там нет БД, это значит, что разработчики решили не использовать БД а) потому что это тупой калькулятор, который не хранит кучу формул в БД, чтобы упростить себе жизнь и код, б) просто тупое приложение в) нашли что-то лучше, чем БД или им в приложении хватит файла обычного для записи циферок-флажков.

Вот, так что, с БД надо разбираться.))

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 20 окт 2013, 22:08

не понимаю, кто заставляет копипастить? уроки тут на сайте повторить достаточно. По-моему все клево описано. Покажите строчку в уроках, которая вам не понятна. Начиная с первого.
http://startandroid.ru/ru/uroki/vse-uro ... qlite.html
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Null
Сообщения: 47
Зарегистрирован: 05 апр 2013, 06:04

Re: БД совсем как тёмный лес.

Сообщение Null » 21 окт 2013, 05:05

Для меня урлки написаны поверхностно, нет той теории которую хочу уаидеть я (в некоторых уроках, та же самая бд, 34). В уроках больше практики, примеров. Я рада, что кому-то помогает практика, мне не всегда.

Вы мне поможете с бд или будете отсылать к урокам?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: БД совсем как тёмный лес.

Сообщение Foenix » 21 окт 2013, 07:40

я читаю ваши вопросы, вот
тут viewtopic.php?f=34&t=2705&view=unread&s ... e27#p19355
вы спрашиваете именно то, что написано в уроке 34.
а если бы вы открыли предлагаемую книгу, то там вообще, повторяю, так разжевано, что дальше некуда. Но вы ее не читали. Не буду же я тут заново все это излагать?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить