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

knpiaxh1  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(264)

我对圣杯还不熟悉。我使用我的外部mysql数据库。我是否必须为数据库中的表创建grails域类(将数据库复制到域模型中),或者我是否可以只为外部mysql表创建控制器和视图而不创建域类?
谢谢你的回答。

1qczuiv0

1qczuiv01#

不,您可以有效地模拟域中的数据库表。
事实上,如果您先构建域,它们会自动为您构建表;许多人认为这是一种更简单的方法,因为如果你有一个预先存在的数据库,你必须完全匹配约束才能让它工作。

643ylb08

643ylb082#

最好在与数据库相关的类中声明域。
用户域类

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)
    }
}

您可以在controller中使用scaffolding来生成crud,就像

class UserController {

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

如果不声明域类,则从控制器中的数据库执行查询时会出错。

j13ufse2

j13ufse23#

没有要求必须将gorm与grails一起使用。实际上,您可以使用 groovy.sql 直接使用sql和“groovyrowresult”而不是域类打包并与数据库交互。
然而,如果你不使用gorm,你也会失去很多脚手架(例如,创建控制器和视图),因为你没有域模型。

相关问题