114 名前:デフォルトの名無しさん [2008/12/05(金) 00:39:54 ] 質問です。 複数のスキーマがあり、プログラム起動時にアクセスするスキーマを動的に切り替えたい。 SCHEMA_01.TABLE_01 SCHEMA_02.TABLE_01 SCHEMA_03.TABLE_01 (TABLE_01のレイアウトは全て共通) iBatis2.3.4で試してみたところ <select id="getTABLE_01" parameterClass="java.util.Map" resultClass="examples.dto.TABLE_01"> SELECT * FROM $SCHEMA$.TABLE_01 WHERE ID = #ID# </select> HashMap map = new HashMap(); map.put("SCHEMA", "SCHEMA_01"); map.put("ID", "1"); TABLE_01 dto = (TABLE_01)sqlMap.queryForObject("getTABLE_01", map); とすることで一応、目的を果たせました。 ですが、この方法ですと毎回HashmapにSCHEMAパラメータを指定する必要があり、 またparameterClassに自前クラスを指定したい場合などに困ったことになります。 sqlMap側でデフォルトスキーマを指定するようなパラメータがないか調べたのですが、見つかりませんでした。 もう少しスマートに行う方法はありませんでしょうか? ちなみにHibernateでもアレコレやってみましたが、 こちらは動的に切り替える方法が全く分かりませんでした。