将普通SQL表添加到Grails应用程序而不是使用ORM?

将普通SQL表添加到Grails应用程序而不是使用ORM?,sql,grails,ddl,Sql,Grails,Ddl,在Grails中,如果使用GORM/ORM,如何使用普通SQL/DDL以相同的方式创建/删除表 例如,在使用GORM/ORM时,在集成测试的运行时和应用程序的执行期间,定期创建/删除用于持久化的表,并将其插入其中 我知道有一种方法可以使用Groovy来实现这一点,如“Advanced Usage”示例中所示,但我正在寻找一些类似于已经构建到框架中的东西,在这些东西中,我可以指定要加载的带有DDL的SQL文件 我正在寻找一些与已经构建到框架中类似的东西,在这里我可以指定一个要加载的带有DDL的SQ

在Grails中,如果使用GORM/ORM,如何使用普通SQL/DDL以相同的方式创建/删除表

例如,在使用GORM/ORM时,在集成测试的运行时和应用程序的执行期间,定期创建/删除用于持久化的表,并将其插入其中

我知道有一种方法可以使用Groovy来实现这一点,如“Advanced Usage”示例中所示,但我正在寻找一些类似于已经构建到框架中的东西,在这些东西中,我可以指定要加载的带有DDL的SQL文件

我正在寻找一些与已经构建到框架中类似的东西,在这里我可以指定一个要加载的带有DDL的SQL文件

据我所知,Grails中没有内置这种支持,所以您必须自己编写。幸运的是,这应该不会太难。以下是实施计划:

  • 将DDL文件存储在conf目录中
  • 在Bootstrap.groovy中,依赖项注入数据源Springbean
  • Bootstrap.groovy的
    init
    闭包中,使用数据源获取到数据库的连接
  • 使用该连接,创建数据库并对其执行DDL文件中的SQL语句
  • Bootstrap.groovy
    destroy
    关闭中,删除数据库

或者我应该为此在我的Grails应用程序中添加类似DBUnit的东西吗?在单元测试运行期间,不会创建任何表,持久性会被模拟。集成测试是的。你能详细说明一下你想要达到的目标吗?有很多方法可以做到这一点,从使用Bootstrap.groovy到使用数据库迁移,但是为什么需要在Grails中创建域模型之外的东西呢?@Marciniebudek是的,你说得对,我的错,我说的只是集成测试……单元测试应该只测试一个组件,而该组件不包括数据库,因为该部分应该被模拟出来。@Marciniebudek我之所以想在Grails的域模型之外创建一些东西,是因为目前我不知道有任何等效的ORM框架在HTML5浏览器的脱机数据库上工作。如果我想在Grails应用程序的在线数据库和HTML5本地离线数据库之间实现数据同步,如果我想简化事情,确保在线和离线数据库中的记录都以类似的方式通过类似的查询和类似的实体关系图进行访问,那么我真的只能使用简单的SQL。谢谢你,唐!:)