Grails читает из существующей БД

Я хочу получить данные из уже существующей базы данных из другого проекта в свой проект Grails и перечислить данные. Должен ли я создавать контроллер домена для уже существующей базы данных? Я знаю, как создать контроллер домена и использовать плагин переноса данных для обновления базы данных, но ни в одной из книг, которые я читал, не было информации о том, как настроить и читать из существующей базы данных. Я использую MySQL для своей базы данных.


person codeBarer    schedule 21.06.2013    source источник
comment
Вам не кажется, что публикация существующей схемы таблицы может помочь?   -  person James Kleeh    schedule 21.06.2013
comment
Я не начал один. Независимо от схемы, я пытаюсь получить доступ к одной таблице из другой базы данных. Произнесите devDb.tblUsers   -  person codeBarer    schedule 21.06.2013
comment
Что подразумевается под существующей базой данных из другого проекта? Главный вопрос здесь заключается в том, есть ли у вас классы предметной области для базовых таблиц, доступных вам или нет?   -  person dmahapatro    schedule 21.06.2013


Ответы (5)


Используйте подключаемый модуль Reverse Engineer для создания классов предметной области из существующей базы данных: https://plugins.grails.org/plugin/grails/db-reverse-engineer

person Burt Beckwith    schedule 21.06.2013
comment
Спасибо, Берт, это действительно поможет мне. Я рассматриваю Grails для нашей корпорации как возможную замену PHP dev. Я использую вашу книгу Programming Grails для справки. Есть ли у вас другие книги, которые вы рекомендуете? Кроме того, нельзя ли получить доступ к данным из базы данных без класса домена, как в php mysqli? - person codeBarer; 24.06.2013

Насколько я понимаю, сделайте следующее:

Предположим, у вас есть существующая БД «TestDB» с таблицей «domain_model» и столбцами «column_a», «column_b» и «column_c».

В Grail создайте один класс домена и добавьте в блок сопоставления следующее:

static mapping = {
    table "domain_model"
            version false
            id column: "primary_key_column"
            columnA column: "column_a"
            columnB column: "column_b"
            columnC column: "column_c"
}
     String id
     String columnA
     Date columnB
     Integer columnC

а в DataSource.groovy оставьте для свойства dbCreate значение «обновление».

dbCreate="обновить"

Надеюсь это поможет !

Кроме того, обязательно добавьте столбцы «id» и «версия» в существующую таблицу, где столбец «id» автоматически увеличивается, и вы можете иметь столбец «версия» как «1» для всех записей.

person Avishek Mazumdar    schedule 25.06.2013
comment
Спасибо. Дополнительный вопрос: может ли Grails читать xml как источник данных? - person codeBarer; 27.06.2013

def defaultDataFileStream = this.class.getResourceAsStream("defaultData.xml")
def allData = new XmlSlurper().parse(defaultDataFileStream)

Попробуйте это в bootstrap.groovy. Вы поместите файл xml в grails-app/conf.

person Wheezykw    schedule 24.10.2013

@codeBarer Вы можете использовать xml в качестве источника данных в Grails, поместив файл xml в grails-app/conf. Вы можете сослаться на этот файл в BootStrap.groovy с помощью:

class.getResource("yourData.xml")
person Wheezykw    schedule 30.06.2013