显示导航

构建一个使用GORM的Ratpack应用程序

了解如何构建将GORM用作数据访问工具包的Ratpack应用程序

s塞尔吉奥·德尔阿莫

365bet地区版本N

365bet地区培训

365bet地区培训由创建并积极维护365bet地区框架的人们开发和交付

入门

在本指南中,您将构建一个拉特帕克使用GORM的应用程序

您将需要什么

要完成本指南,您将需要以下内容

  • 花些时间在你手上

  • 体面的文本编辑器或IDE

  • 安装了JDK或更高版本JAVA首页适当配置

如何完成指南

要开始,请执行以下操作

要么

365bet地区指南存储库包含两个文件夹

  • 初始初始项目

初始包含一个拉特帕克应用程式

建立gradle
插件ID"Eau Ratpak夜Ratpakગo""1.7.5"仓库jcenter

用GET/端点返回你好世界

src ratpack Ratpack常规
进口 静态的 Groovy鼠尾草Groovy鼠尾草Ratpack处理程序获取渲染"你好,世界"
    }
  }
}
  • 完成一个完整的示例它是按照指南中介绍的步骤进行操作并将这些更改应用于文档的结果。初始

要完成指南,请转到初始

  • 光盘进入grails指导gorm ratpack初始

并按照下一节中的说明进行操作

您可以直接前往完成的例子如果你光盘进入grails指南gorm ratpack完成

编写申请

配置构建

编辑建立gradle文件以包含GORM依赖项

建立gradle
存储库jcenter maven url"https repo grails org grails核心"依赖项编译"org grails grails数据库存储gorm hibernate发布"运行"与h数据库h"运行"组织apache tomcat tomcat jdbc"运行"组织apache tomcat嵌入tomcat嵌入日志log j"运行"org slf j slf j api"
}

对于本指南,使用内存数据库中的H an

蓝色文档了解更多

GORM配置

本指南中开发的Ratpack应用程序使用Google GuiceGoogle Guice提供了模块的概念这是提供对象的一种方法

创建一个模块以配置GORM

src main groovy演示GormModule groovy
演示进口 com google注入AbstractModule
进口 与谷歌注入提供
进口 常规转换CompileStatic
进口 组织grails orm休眠HibernateDatastore

静态编译
 Gorm模块 延伸抽象模块覆写
    受保护的 虚空配置提供HibernateDatastore hibernateDatastore地图<, 宾语组态'休眠hbm ddl自动':'创建放置',
            'dataSource网址':'jdbc h mem myDB'
        ]  地图<, 宾语>

        HibernateDatastore配置getClass getPackage

可以通过传递Map或实例来配置用于休眠的GORMPropertyResolver连接到组织grails orm休眠HibernateDatastore独立使用时的类

创建域

创建两个域对象

  • 厂商groovy

  • 车辆槽

随意使用您喜欢的IDE来创建它们或执行以下命令

cd complete src main groovy演示touch制造商groovy touch车辆groovy

现在我们所有的班级存根都到位了,让我们继续编辑它们

src main groovy演示制造商groovy
演示进口 grails gorm注释实体
进口 常规转换ToString
进口 组织grails数据存储gorm GormEntity

ToString
实体
 制造商 实施GormEntity {

    那么静态的有很多汽车车辆静态的约束名称空白: 
    }
}
src主groovy演示域车辆groovy
演示进口 grails gorm注释实体
进口 组织grails数据存储gorm GormEntity
进口 常规转换ToString

ToString
实体
 车辆 实施GormEntity {
    那么整数静态的属于制造商制造商静态的约束名称可为空: , 空白: 
    }
}

制造商车辆有一对多的关系

因此,我们在365bet地区之外使用了GORM,因此,我们需要使用grails gorm注释实体此外,我们实施了GormEntity365bet地区特质仅仅是为了在365bet地区之外帮助GORM的IDE支持

种子数据

创建一个服务在应用程序启动时封装示例数据的创建

src main groovy演示BootStrapService groovy
演示进口 grails gorm Transactions事务性
进口 常规转换CompileStatic
进口 组织grails orm休眠HibernateDatastore
进口 ratpack执行阻止
进口 拉包服务
进口 ratpack服务StartEvent

静态编译
 BootStrapService 实施服务虚空onStart StartEvent e抛出 例外e getRegistry获取HibernateDatastore阻塞执行populateWithSampleData交易性
    虚空populateWithSampleData制造商audi制造商那么: '奥迪'奥迪Addsovicles车辆那么: '一种', : 1996奥迪Addsovicles车辆那么: '一种', : 1994奥迪保存制造商福特制造商那么: '福特汽车'福特addToVehicles车辆那么: '福特KA', : 1996福特保存

创建一个处理程序

创建一个处理器我们处理两个请求

要求/返回制造商列表奥迪车返回名称为的制造商的车辆清单奥迪

src主groovy演示ManufacturerHandler groovy
演示进口 grails gorm交易ReadOnly
进口 常规转换CompileStatic
进口 ratpack执行阻止
进口 ratpack groovy处理GroovyContext
进口 ratpack groovy处理GroovyHandler
进口 静态的 鼠王杰克逊杰克逊json

静态编译
 制造商处理程序 延伸GroovyHandler覆写
    受保护的 虚空处理GroovyContext上下文ManufacturerName上下文pathTokens id阻止获取制造商名称findAllVehicleNameByManufacturerName ManufacturerName findAllManufacturerName然后命名上下文呈现json名称只读
    清单<findAllVehicleNameByManufacturerName厂商名称厂商名称投影属性所在的车辆'那么'清单 清单<>
    }
    只读
    清单<findAllManufacturerName投影机所在的制造商属性'那么'清单 清单<>
    }
}

Ratpack常规

替换内容src ratpack Ratpack常规.

src ratpack Ratpack常规
进口 演示BootStrapService
进口 但是,
进口 演示ManufacturerHandler

进口 静态的 Groovy鼠尾草Groovy鼠尾草ratpack绑定模块GormModule bindInstanceBootStrapService添加ManufacturerHandler处理程序获取"身份车辆"制造商处理程序获取制造商处理程序

之前的代码注册了模组该配置GORM服务在启动时填充数据库,并且处理器.

运行应用

gradlew奔跑

您应该能够调用端点

curl http本地主机

得到回应

奥迪福特

或取回制造商的车辆

卷曲http localhost奥迪车辆

得到回应

A A

365bet地区您需要有关GORM或365bet地区的帮助吗

OCI赞助了本指南的创建OCI提供了几种365bet地区服务:

免费咨询

OCI 365bet地区团队包括365bet地区联合创始人Jeff Scott Brown和Graeme Rocher检查我们的365bet地区课程并向发展和维护365bet地区的工程师学习

Grails OCI团队