如果我在 grails 中使用 groovy sql 类,它是否使用 grails 连接池?

2024-04-21

来自 sql 文档中的以下示例。如果我使用这两种方法之一在 Grails 服务类中创建 sql 实例,它会使用 Grails 连接池吗?它会参与任何交易功能吗?我需要自己关闭连接吗?还是会自动回到池子里?

def db = [url:'jdbc:hsqldb:mem:testDB', user:'sa', password:'', driver:'org.hsqldb.jdbcDriver']
  def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)

或者,如果您有现有连接(可能来自连接池)或数据源,请使用构造函数之一:

  def sql = new Sql(datasource)

现在您可以调用 sql,例如创建一个表:

 sql.execute '''
        create table PROJECT (
          id integer not null,
          name varchar(50),
          url varchar(100),
        )
 '''

如果执行:

Sql.newInstance(...)

您将创建一个新连接,并且不使用连接池。

如果要使用连接池,可以使用以下命令创建Service:

grails create-service org.foo.MyService

然后,在 MyService.groovy 文件中,您可以按如下方式管理事务:

import javax.annotation.PostConstruct

class MyService {
    def dataSource              // inject the datasource
    static transactional = true // tell groovy that the service methods will be transactional


    def doSomething() {
       sql = new Sql(dataSource)
       //rest of your code
    }
}

欲了解更多详情,您可以阅读:http://grails.org/doc/2.0.x/guide/services.html http://grails.org/doc/2.0.x/guide/services.html

EDIT:

要管理多个数据源,您可以根据您的 Grails 版本执行以下操作之一。

如果您使用的 Grails 版本高于 1.1.1(不是 2.x),您可以使用以下插件:

http://grails.org/plugin/datasources

如果您使用 Grails 2.x,您可以使用开箱即用的支持:

http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果我在 grails 中使用 groovy sql 类,它是否使用 grails 连接池? 的相关文章

随机推荐

  • 源注释.h ? C++ [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Visua
  • 在SPARQL中使用LIMIT时如何获取结果总数?

    我有一个 SPARQL 查询 它返回结果LIMIT共 20 个 在此查询中 我还想知道结果总数 而无需运行查询两次 一次运行LIMIT和一个没有LIMIT 例如 运行查询时 可能的结果总数为 500 个 其中LIMIT它一次只显示 20 个
  • 如何发送元数据 HTTP POST 请求

    假设我想发送这些类型的请求 其中 json 数据中有 meta 我该如何处理 我把它作为 json 数据 amount 500 narration Test Int l bank transfers currency USD benefic
  • 如何启动一个新的大型 ZF2 项目?

    我将使用 ZF2 创建一个新项目 事实上 我必须升级 ZF1 项目 但我决定从头开始 我的项目非常庞大 已经被来自世界各地的志愿者翻译成 10 种不同的语言 我遇到的困难是分析 ZF2 告诉我要遵循的模块结构 该软件允许 ISP 领域的中小
  • 如何使用 Selenium 找到文本位置?

    我正在尝试使用 Selenium 查找网页上某些文本的位置 我可以使用 isTextPresent 函数来告诉我文本是否出现 但随后我想知道它实际在哪里 更广泛的问题是我想单击此文本 问题是我似乎无法单击此文本 我认为该文本位于页面上嵌入的
  • sqlalchemy中查询相关表

    所以我有两个表 员工 和 详细信息 如下所示 class Employee Base tablename employees id Column Integer Sequence employee id seq primary key Tr
  • 如何在 ASP.NET 5 中使用基于 IAppBuilder 的 Owin 中间件

    ASP NET 5 ASP NET vNext 与 Katana 一样基于 OWIN 但具有不同的抽象 尤其IAppBuilder已被替换为IApplicationBuilder 许多中间件库依赖于IAppBuilder并且尚未更新以支持
  • 使用多个条件查找所有结果

    我有一个包含多列的表 我想使用条件过滤表并接收包含匹配项的范围 1 我知道我可以使用循环轻松地在表中进行迭代 或者 2 我可以在列中添加过滤器 我不喜欢 1 因为表中的迭代太慢 但我可以做到这一点 Excel 是否有一种函数可以一步返回按特
  • BigQuery更新如何获取更新的行数

    我正在使用 Google Cloud Functions 连接到 Google Bigquery 数据库并更新一些行 云函数是使用Python 3编写的 当我通过函数运行更新 dml 时 我需要帮助弄清楚如何获取结果消息或更新 更改的行数
  • dplyr 0.3 无法inner_join data.table?

    我有以下设置并加载了 dplyr 0 3 和 data table 1 9 3 R version 3 1 1 2014 07 10 Platform x86 64 apple darwin10 8 0 64 bit locale 1 en
  • 是否可以直接从文件加载镶木地板表?

    如果我有一个二进制数据文件 可以转换为 csv 格式 有什么方法可以直接从中加载镶木地板表吗 许多教程显示将 csv 文件加载到文本表 然后从文本表加载到镶木地板表 从效率的角度来看 是否可以像我已有的那样直接从二进制文件加载镶木地板表 理
  • Android html5 输入 type="password" 和数字键盘

    我的任务是为 Android 和 iOS 设计一个网页 您应该在其中输入您的信用卡信息 我无法获取在 Android 中打开数字键盘的安全代码字段 这是我距离最近的一次 它适用于 iOS 但不适用于 Android
  • 用三种颜色的渐变填充面板

    我正在做一个项目 我必须使用 C 做一种颜色选择器 所以我决定在 Win Forms 应用程序中建立一个具有此背景的面板 背景应具有 RGB 三种颜色的渐变 红色 0 255 蓝色 0 255 和绿色 0 但我找不到任何关于我应该为此使用什
  • 模板组件启动器内的离子标签组件未渲染

    我克隆了stencil component starter from https github com ionic team stencil component starter https github com ionic team ste
  • Android 上未原生找到 RNFirebase 核心模块

    我正在尝试在 Android 平台上运行现有的 React Native 应用程序 但收到如下图所示的错误 我已经执行了下面提到的所有步骤http invertase link android http invertase link and
  • Ionic2 - 如果超时则取消 Api 请求

    在我的应用程序中 我通过表单保存数据并调用 Api 进行相同的操作 为了检查它们的互联网连接是否缓慢 我在 ionic2 中使用超时 如下所示 savedata let headers new Headers headers set Con
  • 创建较慢的过渡。 TransitionManager.beginDelayedTransition();太快了

    我正在创建一个过渡 当单击按钮时 将执行以下方法 该方法改变了图像视图的大小和位置 并将其淡出 我在用TransitionManager beginDelayedTransition is too fast 放慢转变速度 但它仍然进展得太快
  • 为动态图像生成 CSS 精灵

    我有一个网页 其中包含大约 20 50 个动态图像 从非静态源提供的图像 这些图像通过基于请求 URL 的 servlet 提供 这会导致每个图像生成一个请求 从而导致性能下降 如果这些图像是静态的 我将创建一个 CSS 精灵并用一个请求替
  • 直线和水平线在断点处连接的分段回归

    我想做一个带有一个断点的分段线性回归 其中回归线的第二半有slope 0 有一些关于如何进行分段线性回归的示例 例如here https stackoverflow com questions 15874214 piecewise func
  • 如果我在 grails 中使用 groovy sql 类,它是否使用 grails 连接池?

    来自 sql 文档中的以下示例 如果我使用这两种方法之一在 Grails 服务类中创建 sql 实例 它会使用 Grails 连接池吗 它会参与任何交易功能吗 我需要自己关闭连接吗 还是会自动回到池子里 def db url jdbc hs