6

今日この質問に遭遇した後:GORMを使用しないGrailsクエリgroovy.sql.SqlまたはJDBCを使用すると、接続プールの利点が得られるのでしょうか。

状況によっては、GORMlessを使用することがどのように有益であるかを理解できますが、connプーリングがないため、オプションとしてGORMlessを使用できなくなります。

プリペアドステートメントのメリットも得られますか?

4

2 に答える 2

8

の主な用途の 1 つは、接続プールDataSourceを提供することです。設定した場合、注入された dataSource は、クエリの実行時にプールからの接続を提供します。pooled = trueDataSource.groovy

Groovy SQL は、準備済みステートメントを使用したクエリも提供します。

def sql = new Sql(dataSource)
def params = [10, 'Groovy', 'http://groovy.codehaus.org']
sql.execute 'insert into PROJECT (id, name, url) values (?, ?, ?)', params

PreparedStatementパフォーマンスのために Sql オブジェクトでキャッシュを有効にすることもできます。

sql.cacheStatements = true
于 2012-09-06T02:40:34.277 に答える
6

データソースが接続プールを使用するように構成されている場合、groovy sql はその恩恵を受けます。

サービスの例を使用します。

class MyService {
  //inject dataSource
  def dataSource

  def myMethod() {
    Sql sql = new Sql(dataSource) 
    sql.execute("insert...") //this will get a connection from the pool
    sql.close() //this will release the connection back to pool
  }
}

メソッドに同じ接続を使用するには、cacheConnectionをチェックします。

于 2012-09-06T01:57:20.423 に答える