SQL-соединение в Grails - PullRequest
       0

SQL-соединение в Grails

2 голосов
/ 26 марта 2012

В моем приложении есть несколько мест, где я хочу использовать чистый SQL. Когда я жестко кодирую детали соединения в Sql.newInstance, он работает нормально. По понятным причинам я предпочел бы не жестко кодировать детали подключения.

Когда я использую переменную dataSource, она появляется как ноль. Мой код в контроллере:

import groovy.sql.Sql

def dataSource
def sql = Sql.newInstance(dataSource)
sql.executeInsert("insert into....")

Мой код в файле конфигурации источника данных:

environments {
    development {
        dataSource {
            dbCreate = "create-drop" 
            url = "jdbc:postgresql:mydev"
            username = "xxx"
            password = "xxx"

Как видите, я использую PostgreSQL. Я также пробовал использовать базу данных Grails по умолчанию с теми же результатами.

Любые идеи будут оценены.

1 Ответ

3 голосов
/ 26 марта 2012

Вам нужно определить dataSource вне действия вашего контроллера.В противном случае пружина не сможет выполнить требуемый ввод зависимостей для вас:

class YouController {

    def dataSource

    def yourAction() {
        def sql = new Sql(dataSource)
        [..]
    }
}
...