Подтвердить что ты не робот

Студия Android GreenDao

Я ищу четкое пошаговое объяснение того, как импортировать GreenDao в Android Studio.

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

Когда я клонируюсь из github, я получаю пример проекта и т.д. Есть ли способ установить GreenDaoGenerator без этих дополнительных функций?

Просто поиск пошагового объяснения.

Обновление: теперь я предлагаю использовать Realm.io! Проверьте это!: -)

Любая помощь будет оценена!

4b9b3361

Ответ 1

Протестировано на Android Studio 2.0

С Android Studio 0.6.1+ (и, возможно, ранее) вы можете легко добавить проект андроида в проект андроида в качестве модуля.

Используя метод ниже, вы можете иметь модули Java (greenDaoGenerator) и модули Android в том же проекте, а также иметь возможность компилировать и запускать Java-модули как самостоятельные Java-проекты.

  • Откройте Android-проект в Android Studio. Если у вас его нет, создайте его.
  • Нажмите Файл > Новый модуль. Выберите Библиотека Java и нажмите "Далее".
  • Заполните имя пакета и т.д. и нажмите "Готово". Теперь вы должны увидеть Java-модуль внутри вашего проекта Android.
  • Откройте файл build.gradle проекта java и добавьте следующую зависимость

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile('de.greenrobot:DaoGenerator:1.3.0')
    }
    
  • Скопируйте классы DaoGenerator или создайте, если у вас их нет в вашем модуле java. Я создал класс ExampleDaoGenerator в моем модуле java.

    public class ExampleDaoGenerator {
    
        public static void main(String[] args) throws Exception {
            Schema schema = new Schema(1000, "de.greenrobot.daoexample");
            addNote(schema);
            new DaoGenerator().generateAll(schema, "../DaoExample/src-gen");
        }
    
        private static void addNote(Schema schema) {
            Entity note = schema.addEntity("Note");
            note.addIdProperty();
            note.addStringProperty("text").notNull();
            note.addStringProperty("comment");
            note.addDateProperty("date");
       }
    
    }
    

Теперь, чтобы сгенерировать классы, которые вы можете использовать в проекте Android, выполните следующие шаги.

  • Нажмите запустить в верхней строке . Нажмите Изменить конфигурации...
  • В новом окне щелкните знак плюс в левом верхнем углу окна и выберите Приложение
  • Появится новая конфигурация приложения, заполните следующую информацию.

    • Дайте ему имя , например. greenDao.
    • В основном классе нажмите кнопку ... и выберите свой класс генератора, который имеет основной метод. в этом случае com.greendao.generator.ExampleDaoGenerator
    • В рабочем каталоге выберите путь к проекту java.
    • В классе использования выберите java-проект. щелкните ОК.
    • Снова перейдите в меню запуска, и теперь вы можете видеть, например. запустить greendao. нажмите на него. Он должен скомпилироваться успешно.

Сделано!!! вы можете проверить созданные вами классы в указанной вами папке. Например, в этом случае это /DaoExample/src-gen

ПРИМЕЧАНИЕ. Вы можете снова запустить проект Android, нажав меню запуска Изменить конфигурацию. выберите свой проект и нажмите "ОК".

Ответ 2

Ниже представлен пошаговый обзор Интеграция GreenDao в проект Android.

[Ссылка Как использовать GeenDao с Android?]

[Ссылка на проект: Пример GreenDao]

ЧАСТЬ 1: Настройка GREENDAO

  • Создайте проект андроида.

  • Нажмите Файл > Создать > Новый модуль. Выберите Библиотека Java и нажмите "Далее".

Img 1

  1. Теперь мы должны добавить следующие зависимости Gradle.

В build.gradle модуля: приложение, вставьте

compile 'de.greenrobot:greendao:2.1.0'

Img 2

В build.gradle модуля : greendao-generator введите

compile 'de.greenrobot:greendao-generator:2.1.0'

Img 3

Убедитесь, что вы синхронизировали свой проект.

Img 4

  1. Теперь в MainGenerator.java,

мы определим структуру базы данных.

import de.greenrobot.daogenerator.DaoGenerator;
import de.greenrobot.daogenerator.Entity;
import de.greenrobot.daogenerator.Schema;

public class MainGenerator {
    public static void main(String[] args)  throws Exception {

        //place where db folder will be created inside the project folder
        Schema schema = new Schema(1,"com.codekrypt.greendao.db");

        //Entity i.e. Class to be stored in the database // ie table LOG
        Entity word_entity= schema.addEntity("LOG");

        word_entity.addIdProperty(); //It is the primary key for uniquely identifying a row

        word_entity.addStringProperty("text").notNull();  //Not null is SQL constrain

        //  ./app/src/main/java/   ----   com/codekrypt/greendao/db is the full path
        new DaoGenerator().generateAll(schema, "./app/src/main/java");

    }
}
  1. Запустить MainGenerator.java

введите описание изображения здесь

  1. После выполнения этой операции вы увидите новую папку, то есть db в главной папке проекта.

введите описание изображения здесь

ЧАСТЬ 2: Интеграция с проектом Android

  • Установите макет activity_main.xml.

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/textData"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />
    
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Save"
        android:id="@+id/textSave"
        android:layout_below="@+id/textData"
        android:layout_alignEnd="@+id/textData"
        android:layout_marginTop="22dp" />
    
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Show Top"
        android:id="@+id/textTop"
        android:layout_below="@+id/textSave"
        android:layout_alignParentStart="true"
        android:layout_marginTop="35dp" />
    

  • В MainActivity.java,

Добавьте следующие коды

package com.codekrypt.greendao;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.codekrypt.greendao.db.DaoMaster;
import com.codekrypt.greendao.db.DaoSession;
import com.codekrypt.greendao.db.LOG;
import com.codekrypt.greendao.db.LOGDao;

import java.util.List;

public class MainActivity extends AppCompatActivity {

    //Dao --> Data Access Object
    private LOGDao log_dao; // Sql access object
    private LOG temp_log_object; // Used for creating a LOG Object

    String log_text="";  //Entered text data is save in this variable

    private  final String DB_NAME ="logs-db" ;  //Name of Db file in the Device

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Initialise DAO
        log_dao=setupDb();

        //Setting up form elements
        Button textSave= (Button) findViewById(R.id.textSave);
        Button textTop= (Button) findViewById(R.id.textTop);
        final TextView textData=(TextView) findViewById(R.id.textData);

        assert textSave != null;
        textSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                log_text=textData.getText().toString();
                temp_log_object=new LOG(null,log_text);// Class Object, Id is auto increment

                SaveToSQL(temp_log_object);
            }
        });

        assert textTop != null;
        textTop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textData.setText( getFromSQL() );
            }
        });
    }

    //---------------------------------SQL QUERY Functions-----------------------------------------//
    public String getFromSQL(){
        List<LOG> log_list = log_dao.queryBuilder().orderDesc(LOGDao.Properties.Id).build().list();  
        //Get the list of all LOGS in Database in descending order

        if(log_list.size()>0) {  //if list is not null

            return log_list.get(0).getText();
            //get(0)--> 1st object
            // getText() is the function in LOG class
        }
        return "";
    }

    public void SaveToSQL(LOG log_object) {
        log_dao.insert(log_object);
    }
    //----------------------------***END SQL QUERY***---------------------------------------------//


    //-------------------------------DB Setup Functions---------------------------------------------//

    //Return the Configured LogDao Object
    public LOGDao setupDb(){
        DaoMaster.DevOpenHelper masterHelper = new DaoMaster.DevOpenHelper(this, DB_NAME, null); //create database db file if not exist
        SQLiteDatabase db = masterHelper.getWritableDatabase();  //get the created database db file
        DaoMaster master = new DaoMaster(db);//create masterDao
        DaoSession masterSession=master.newSession(); //Creates Session session
        return masterSession.getLOGDao();
    }
    //-------------------------***END DB setup Functions***---------------------------------------//

}
  1. Перед запуском приложения убедитесь, что вы изменили конфигурацию. введите описание изображения здесь

  2. Теперь запустите его.

ЧАСТЬ 3 - ПРОСМОТР БД SQL

  • Откройте командную строку.
  • Введите следующие команды. введите описание изображения здесь

  • Открытие файла db в SQLite3 введите описание изображения здесь

  • Использование SQLite3 введите описание изображения здесь

ЧАСТЬ 4 - ЭКСТРАСЫ

  • Структура (основные классы) GREENDAO

введите описание изображения здесь

Ответ 3

Я использовал этот учебник для Android Studio 0.8.9, и все работает нормально.

Ответ 4

Работает на Android 1.3 Preview

Для верхнего ответа (протестировано на Android Studio 1.0) вам может потребоваться включить эту исходную папку в ваш проект. Перейдите в app/build.gradle

добавьте следующий внутренний блок Android

sourceSets {

main{
    java{
        srcDir 'src-gen'
    }
}

Ответ 5

Решение: IO-исключение

  • Перейдите в сборку с вашего генератора dao.
  • добавить: применить 'приложение'
  • add: mainClassName = "you.package.include.Main"
  • выполнить "запустить" в задаче приложения (gradle)

Я не знаю, почему он не работает, когда вы вручную создаете конфигурацию запуска.

Ответ 6

В принципе, вам нужно добавить модуль Java library (File > New > New module..) в ваш проект Android (при условии, что вы используете Android Studio), и вставьте поколение кода внутри public static void main(String[] args) {} в этом модуле .java. Затем запустите его, и код будет сгенерирован в основном модуле приложения.

Смотрите это сообщение в блоге для пошагового руководства с объяснением.