Урок 34. Хранение данных. SQLite

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

Re: Урок 34. Хранение данных. SQLite

Сообщение trew » 16 окт 2013, 11:37

Isaev писал(а):а каким образом onCreate в DBHelper срабатывает только если БД не существует?
По идее, при вызове

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

dbHelper = new DBHelper(this);
он уже должен отработать, разве нет?
dbHelper = new DBHelper(this); -- это просто вызов класса, мы можем любой класс вызвать чтобы обращаться к его методам.
Назвали класс DBHelper, название может быть любым.

База создается при вызове
SQLiteDatabase db = dbHelper.getWritableDatabase();
Догадки, наверно там внутри условие (проверить существование базы, если нет - создать т.е. запустить onCreate в классе DBHelper).
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Le1b
Сообщения: 20
Зарегистрирован: 09 авг 2013, 13:16

Re: Урок 34. Хранение данных. SQLite

Сообщение Le1b » 19 окт 2013, 21:14

Как скопировать БД которая находится в каталоге ассет? То есть если БД не создана, то скопировать с ассет, если существует, то использовать существующую.

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 19 окт 2013, 21:31

Le1b писал(а):Как скопировать БД которая находится в каталоге ассет? То есть если БД не создана, то скопировать с ассет, если существует, то использовать существующую.
http://stackoverflow.com/questions/5130 ... a-database
R.id.team

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

feboll
Сообщения: 6
Зарегистрирован: 04 ноя 2013, 22:22

Re: Урок 34. Хранение данных. SQLite

Сообщение feboll » 04 ноя 2013, 22:31

Приветствую, вас!
Вопрос может быть мего тупой, но все таки. Уже второй день не могу найти информацию как связать таблицы(например один-к-одному или один-ко-многим). Или может кто знает где про это можно на доступном языке прочитать или пример привести.
Заранее спасибо.

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 04 ноя 2013, 22:36

на пальцах сложно рассказать.
Приводите примеры своих таблиц.
R.id.team

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

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

Re: Урок 34. Хранение данных. SQLite

Сообщение trew » 04 ноя 2013, 22:45

feboll писал(а):Приветствую, вас!
Вопрос может быть мего тупой, но все таки. Уже второй день не могу найти информацию как связать таблицы(например один-к-одному или один-ко-многим). Или может кто знает где про это можно на доступном языке прочитать или пример привести.
Заранее спасибо.
Обрати внимание на соединение таблиц INNER JOIN и LEFT JOIN
http://jtest.ru/bazyi-dannyix/sql-dlya- ... ast-3.html
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

feboll
Сообщения: 6
Зарегистрирован: 04 ноя 2013, 22:22

Re: Урок 34. Хранение данных. SQLite

Сообщение feboll » 05 ноя 2013, 00:19

Foenix писал(а):на пальцах сложно рассказать.
Приводите примеры своих таблиц.
Поясни. Тебе нужен код или примерное описание

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 05 ноя 2013, 12:36

feboll писал(а):
Foenix писал(а):на пальцах сложно рассказать.
Приводите примеры своих таблиц.
Поясни. Тебе нужен код или примерное описание
Мне нужно примерно следующее (это можно назвать схемой базы данных)

1. Таблица, содержащая наименования пользователй системы и цвет их меток.
_id caption label
1 user red
2 owner blue
3 admin black

2. Таблица с оценками каждого пользователя..
_id id_user mark
1 1 5
2 1 4
3 2 2
...

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

и аналогично что ты хочешь получить объяснить или в виде таблицы.

Тогда я помогу запрос написать.
R.id.team

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

feboll
Сообщения: 6
Зарегистрирован: 04 ноя 2013, 22:22

Re: Урок 34. Хранение данных. SQLite

Сообщение feboll » 05 ноя 2013, 22:14

Foenix писал(а): Мне нужно примерно следующее (это можно назвать схемой базы данных)
1. Таблица, содержащая наименования пользователй системы и цвет их меток.
2. Таблица с оценками каждого пользователя..
(аналогично вторую табличку с названиями полей и парочкой строчек данных, если нужна третья - то же самое)
и аналогично что ты хочешь получить объяснить или в виде таблицы.
Тогда я помогу запрос написать.
Простите меня( Но я ничего не понял... Просто я думал, что связь как то прописывается где-то сдесь
[syntax=java]
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "name text,"
+ "email text" + ");");
[/syntax]

это материал из урока...

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 06 ноя 2013, 10:29

ну что я могу поделать? не понял - придется разобраться.
p.s. связь прописываеться не "сдесь".
Последний раз редактировалось Foenix 06 ноя 2013, 12:12, всего редактировалось 1 раз.
R.id.team

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

feboll
Сообщения: 6
Зарегистрирован: 04 ноя 2013, 22:22

Re: Урок 34. Хранение данных. SQLite

Сообщение feboll » 06 ноя 2013, 11:58

Foenix писал(а):ну что я могу поделать? не понял - придется разобраться.
p.s. связть прописываеться не "сдесь".
Спасибо, что разъяснили) я уже начал по не многу въезжать))

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Урок 34. Хранение данных. SQLite

Сообщение mdzht » 11 ноя 2013, 12:04

Здравствуйте, вопрос такой. Можно ли созданную базы данных, с помощью SQLite, закинуть на сервак? Мне бы хотелось что бы в приложении был механизм авторизации и возможность оставлять комментарии. Есть у кого нибудь пожелания или советы? Может есть примеры в API SAMPLES, я что-то не увидел. Любой ценный совет будет полезен!! :D
«Life is too short to spend rewriting code»

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

Re: Урок 34. Хранение данных. SQLite

Сообщение trew » 11 ноя 2013, 12:15

mdzht писал(а):Здравствуйте, вопрос такой. Можно ли созданную базы данных, с помощью SQLite, закинуть на сервак? Мне бы хотелось что бы в приложении был механизм авторизации и возможность оставлять комментарии. Есть у кого нибудь пожелания или советы? Может есть примеры в API SAMPLES, я что-то не увидел. Любой ценный совет будет полезен!! :D
С базой SQLite одновременно может работать только один человек. Это вас не пугает?
Закинуть можно, копируй её.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Урок 34. Хранение данных. SQLite

Сообщение mdzht » 11 ноя 2013, 12:26

trew писал(а):
trew писал(а): С базой SQLite одновременно может работать только один человек. Это вас не пугает?
Закинуть можно, копируй её.
Насчет одного человека не пугает, пока это не большая приложения. Лучше с MySQL базой? Я не могу найти материалы касающихся Андроид и MySQL. Какие плюсы и минусы SQLite + Андроида, и MySQL + Андроида?
«Life is too short to spend rewriting code»

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

Re: Урок 34. Хранение данных. SQLite

Сообщение trew » 11 ноя 2013, 12:54

mdzht писал(а):
trew писал(а):
trew писал(а): С базой SQLite одновременно может работать только один человек. Это вас не пугает?
Закинуть можно, копируй её.
Насчет одного человека не пугает, пока это не большая приложения. Лучше с MySQL базой? Я не могу найти материалы касающихся Андроид и MySQL. Какие плюсы и минусы SQLite + Андроида, и MySQL + Андроида?
А как вы думаете, в чём отличие однопользовательской от многопользовательской базы?
Чтобы вырыть яму, можно использовать лопату, а можно динамит.

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

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Урок 34. Хранение данных. SQLite

Сообщение mdzht » 11 ноя 2013, 13:03

trew писал(а): А как вы думаете, в чём отличие однопользовательской от многопользовательской базы?
Чтобы вырыть яму, можно использовать лопату, а можно динамит.

Преимущества разумно рассматривать в контексте задачи, которую предстоит решить.
Ясно, философ. А как в коде подключить MySQL к андроиду?
«Life is too short to spend rewriting code»

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

Re: Урок 34. Хранение данных. SQLite

Сообщение trew » 11 ноя 2013, 13:13

mdzht писал(а):
trew писал(а): А как вы думаете, в чём отличие однопользовательской от многопользовательской базы?
Чтобы вырыть яму, можно использовать лопату, а можно динамит.

Преимущества разумно рассматривать в контексте задачи, которую предстоит решить.
Ясно, философ. А как в коде подключить MySQL к андроиду?
в поисковике: jdbc
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 11 ноя 2013, 18:22

trew писал(а):
mdzht писал(а):Здравствуйте, вопрос такой. Можно ли созданную базы данных, с помощью SQLite, закинуть на сервак? Мне бы хотелось что бы в приложении был механизм авторизации и возможность оставлять комментарии. Есть у кого нибудь пожелания или советы? Может есть примеры в API SAMPLES, я что-то не увидел. Любой ценный совет будет полезен!! :D
С базой SQLite одновременно может работать только один человек. Это вас не пугает?
эй-эй, полегче!
trew писал(а):в поисковике: jdbc
то же самое!
R.id.team

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

Digetix
Сообщения: 117
Зарегистрирован: 12 окт 2012, 15:31

Re: Урок 34. Хранение данных. SQLite

Сообщение Digetix » 18 ноя 2013, 23:28

Делая по уроку, хочу на кнопку Add "повесить" такое событие

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

             query = new ParseQuery("My");           
             query.findInBackground(new FindCallback() {
             public void done(List<ParseObject> my, ParseException e) 
              {
               if (e == null) 
                  {
            	      
            	     for ( int i = 0; i < 50; i++) 
            	         {	
            	    	 
                          stGet = my.get(i).getString("St");
                          
                          // подготовим данные для вставки в виде пар: наименование столбца - значение
                	      // cv.put("email", email);
                          cv.put("email", stGet);
                	      // вставляем запись и получаем ее ID
                	      long rowID = db.insert("mytable", null, cv);
                	      Toast.makeText(getApplicationContext(), "Вставка ID = " + rowID, Toast.LENGTH_SHORT).show();
            	         }           	 
                  }
               }
              });
Приложение "падает"
и в класс хелпера

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

class DBHelper extends SQLiteOpenHelper {
		
	    public DBHelper(Context context) { 	  
	          super(context, "/sdcard/"+DATABASE_NAME, null, 1);	          
	          String newFolder = "/newFolder";
	          String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
	          File myNewFolder = new File(extStorageDirectory + newFolder);
	          myNewFolder.mkdir();
	          SQLiteDatabase.openOrCreateDatabase("/sdcard/newFolder/"+DATABASE_NAME,null);
	    }

	    @Override
	    public void onCreate(SQLiteDatabase db) {
	      db.execSQL("create table mytable ("
	          + "id integer primary key autoincrement,"
	          + "email text" + ");");
	    }

	    @Override
	    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

	    }
	  }
Приложение вылетает с ошибкой
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here

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

Re: Урок 34. Хранение данных. SQLite

Сообщение Foenix » 19 ноя 2013, 07:41

весь лог приведи, это у тебя лишь последствия ошибки
R.id.team

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

Ответить