カスタム検索

2008年10月19日日曜日

オデッセイ納車!



はい、嘘です。

試乗にいってまいりました。
正直雑誌で初めて見た時は「微妙?」と思ったんですが、実際に見たら以外に良いですね。
内装に関してはちょっと物足りない感がありましたが、走りはさすがHONDAといった感じです。
1-2速が低速重視になったらしくて、5ATなのにもの凄くスムーズに力強い加速でした、もうCVTいらないんじゃないかと・・・

と、久しぶりのブログが車だけではあれなんで、Grailsネタ

・2つのデータソースを使う

旧システムや、他システムとの連携で2つのDBへ接続したい時があると思います。
大規模なものであれば、連携用のGrailsアプリを用意して、Webサービスで連携といったほうが確実なのですが、
ちょっと使いたいだけの場合には以下の方法もありかと思います。

GrailsはSpringFrameworkを使っているので、SpringのbeanとしてDatasourceを注入してやればOKです。

grails-app/conf/spring/resources.groovy に以下のような記述をします。


beans = {
def properties = {
def driver = "jdbc.driver.url"
driverClassName = driver
url = "jdbc.url"
username = "user"
password = "pass"
}

def otherDataSource= otherDataSource(BasicDataSource, properties)
otherDataSource.destroyMethod = "close"
}


これで otherDataSource として別のBasicDataSourceがbeanとして注入されました。

これをControllerやServiceなどに注入して使います。


class OtherDataSourceService {
boolean transactional = true
def otherDataSource // これで注入されます。

def test() {
def conn = otherDataSource.getConnection()
def stmt = conn.prepareStatement("SELECT * FROM Book")
def result = stmt.executeQuery()

}
}


これで ResultSet が返ってくるので、これを煮るなり焼くなりしちゃいましょう。
もちろん UPDATE や INSERT も使えます。
これだけではGORMには参加出来ませんので、ドメインと連携したりしたいのであればもっと深い所までいかないといけませんが、
そこまでいくのであれば前述したように、連携アプリを用意してしまったほうが良いと思います :)

1 件のコメント:

tamata さんのコメント...

まじで?オデ買ったの???