今日この質問に遭遇した後:GORMを使用しないGrailsクエリgroovy.sql.SqlまたはJDBCを使用すると、接続プールの利点が得られるのでしょうか。
状況によっては、GORMlessを使用することがどのように有益であるかを理解できますが、connプーリングがないため、オプションとしてGORMlessを使用できなくなります。
プリペアドステートメントのメリットも得られますか?
今日この質問に遭遇した後:GORMを使用しないGrailsクエリgroovy.sql.SqlまたはJDBCを使用すると、接続プールの利点が得られるのでしょうか。
状況によっては、GORMlessを使用することがどのように有益であるかを理解できますが、connプーリングがないため、オプションとしてGORMlessを使用できなくなります。
プリペアドステートメントのメリットも得られますか?
の主な用途の 1 つは、接続プールDataSource
を提供することです。設定した場合、注入された dataSource は、クエリの実行時にプールからの接続を提供します。pooled = true
DataSource.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
データソースが接続プールを使用するように構成されている場合、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をチェックします。