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

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

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

Сообщение Null » 25 окт 2013, 14:02

no--, да, вы правы. Да нет, мне уже не нужна БД, к чертям её :D

Аватара пользователя
knight
Сообщения: 44
Зарегистрирован: 21 сен 2012, 09:25

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

Сообщение knight » 26 окт 2013, 16:23

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


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

1) Моя БД должна хранить слово на английском и его перевод на русском, т.е., 2 слова хранить. Это, как я поняла, 1 таблица, 2 поля. Верно? А если у меня будет список слов, т.е., должно быть 3 строки. А потом создали другой список - другая таблица или другая БД, или что будет другим?

>>>
не совсем понятно что вы вообще имеете ввиду, это сферический конь в вакууме.
но если я вас правильно понял то у вас грубо говоря есть такое
слово англ - перевод
Zatypok - Затупок
если 2 слова
Zatypok - Затупок,Редиска,Чебурашка

то структура ваше бд 3 поля - id integer,Original text,Translate text

2) БД в eclipse сама создаться, т.е., мне не нужно ничего докачивать и устанавливать для работы с БД, верно?

>>
бд никак не создается в eclipse, она создается автоматически на телефоне с использованием SQLiteOpenHelper

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

>>
ООП не не слышали?
1е- использовать можно либо кастомную верстку с использованием линейного слоя + 2 едит текста, либо ListView с использованием стандартных функций и адаптера, либо вообще написать свой адаптер со своей вьюшкой, вариантов куча.
2e- ООП подразумевает объектно ориентированное программирование, конечно же в активити вы можете объявить класс на бд и забрать данными своим запрос

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

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

>>
очень даже, читая ваше сообщение понятно что вы в этом далеко от базовых знаний даже


ну вот вам пример на вашу структуру слава богу она маленькая

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


public class BD extends SQLiteOpenHelper
{

    private static BD            instance; // ссылка на класс для реализации сингелтон
    static final String          DATABASE_NAME    = "MyZatypokbd"; // имя вашей бд
    public static SQLiteDatabase db; //переменная класса бд
    private static final int     DATABASE_VERSION = 1; //версия бд

//собственно функция для возвращения ссылки на класс бд как сингелтон для избижания блокировок базы
  public static synchronized BD getInstance(Context context)
    {
        if (instance == null && db == null)
        {
            instance = new BD(context);
            db = instance.getWritableDatabase();
            db.setLockingEnabled(false);
        }

        return instance;
    }
///конструктор класса
 public BD(Context context)
    {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

//переопределенный метод класса наследника SQLiteOpenHelper вызывается один раз при установки приложения!!!
  @Override
    public void onCreate(SQLiteDatabase db)
    {

     db.execSQL("create table data (" + "_id integer primary key autoincrement," + "Original text," + "Translate text")");
     //создаете таблицу data с вашими полями
     }
//вызывается при сизминении версии базы для внесения изминений
 @Override
    public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion)
    {
      
}

вот вам класс для создания вашей бд, все легко и просто
ладно так быть пример использования запросов к вашему классу BD

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

public class SqlbdZapr
{
	
	private Activity	act;
	//конструктор
	public SqlbdZapr(Activity a)
	{
		act = a;	
	}
	
//запрос выдачи перевода по вашему английскому слову
	@SuppressWarnings("static-access")
	public  String GetPerevodBleat(String orig)
	{
                String Translate="";
		BD dbi = BD.getInstance(act); ссылка на ваш класс бд
		Cursor c = BD.db.rawQuery("SELECT Translate FROM data WHERE Original='" + orig + "' ", null);
		if (c.moveToFirst())
		{
			int idColIndes = c.getColumnIndex("Translate");
			do
			{
				Translate=c.getString(idColIndes);
			}
			while (c.moveToNext());
		}
		
		c.close();
		
		return Translate;
		
	}
в вашем активити

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


SqlbdZapr sqlbdZapr = new SqlbdZapr(this);
String s=sqlbdZapr.GetPerevodBleat("Zatypok");
	System.out.println("ооодааа детка  " + s);


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

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

Сообщение Null » 27 окт 2013, 11:15

Спасибо, knight.

Ответить