從sql文檔中的下面的例子。如果我使用這兩種方法中的任何一種在grails服務類中創建一個sql實例,它會使用grails連接池嗎?它會參與任何交易功能嗎?我需要自己關閉連接嗎?還是會自動回到游泳池?如果我在grails中使用groovy 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類,並獲得自動池。我可能想在除服務類之外的類中進行此操作。我不需要服務交易管理。 – Andrew 2012-02-17 04:01:06