Grails-外部数据库控制器和域

时间:2018-12-23 16:25:04

标签: mysql grails controller dns

我是Grails的新手。我使用我的外部mysql数据库。我必须为数据库中的表创建Grails域类(将数据库复制到域模型中),还是可以为外部mysql表仅创建控制器和视图而不创建域类?

谢谢您的回答。

3 个答案:

答案 0 :(得分:1)

不,您不能有效地模拟域中的数据库表。

实际上,如果您首先构建域,那么它们将自动为您构建表;许多人发现这是一种更简单的方法,就好像您已有一个数据库一样,您必须完全匹配约束才能使其正常工作。

答案 1 :(得分:1)

不要求必须对Grails使用GORM。实际上,您可以只使用groovy.sql包中的类,并直接使用SQL和'GroovyRowResult'而不是域类与数据库进行交互。

但是,如果您不使用GORM,那么由于没有域建模,还会丢失很多支架(例如,创建控制器和视图)。

答案 2 :(得分:1)

最好在可能与数据库有关的类中声明您的域。

用户域类

class User {

    Long id
    String name

    static mapping = {
        table 'user'  //here user is database table name

        version false
        id column: 'id', generator: 'increment'
        name column: 'name'
    }

    static constraints = {
        id(nullable: true)
        name(nullable: false)
    }
}

您可以在控制器中使用脚手架来生成CRUD,就像

class UserController {

    static scaffold = User
    def index() {
        def userList = User.list()
        [userList: userList]
    }
}

不声明您的域类,您将在从控制器中的数据库执行查询时得到错误。