vec*_*tor 6 sql grails groovy jdbc
今天遇到这个问题:Grails查询不使用GORM我想知道使用groovy.sql.Sql或JDBC是否带有连接池的好处?
在某些情况下,我可以看到GORMless如何有益,但缺乏conn pooling会将其作为一种选择.
我们还能从准备好的陈述中获益吗?
a的主要用途之一DataSource是提供连接池.如果已设置pooled = true,DataSource.groovy则在执行查询时,注入的dataSource将为您提供池中的连接.
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
| 归档时间: | 
 | 
| 查看次数: | 8026 次 | 
| 最近记录: |