1 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:31:17 ] 前スレ: Java⇔RDBのMapping-Frameworkを語るスレ Vol.4 ttp://pc11.2ch.net/test/read.cgi/tech/1134701684/ 過去スレ: Java⇔RDBのMapping-Frameworkを語るThre Vol.3 ttp://pc8.2ch.net/test/read.cgi/tech/1090653286/ Java⇔RDBのMapping-Frameworkを語るスレ Vol.2 ttp://pc5.2ch.net/test/read.cgi/tech/1086315004/ Java⇔RDBのMapping-Frameworkを語るスレ ttp://pc5.2ch.net/test/read.cgi/tech/1049030272/ ●まずは、基礎知識と技術選択指針など [The Fundamentals of Mapping Objects to Relational Databases] (RDBに対するオブジェクトマッピングの基礎(英語)) ttp://www.agiledata.org/essays/mappingObjects.html [O/R-Mappingツールの比較サイト(英語)] ttp://c2.com/cgi-bin/wiki?ObjectRelationalToolComparison [Catalog of Patterns of Enterprise Application Architecture (PoEAA)] ttp://www.martinfowler.com/eaaCatalog/ あとは>>2-5 ぐらい
103 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 12:37:21 ] 『とある魔術の禁書目録』の通り名一覧表 幻想殺し(イマジンブレイカー) 風紀委員(ジャッジメント) 超電磁砲(レールガン) 欠陥電気(レディオノイズ) 一方通行(アクセラレータ) 最終信号・打ち止め(ラストオーダー) 肉体再生(オートリバース) 未元物質(ダークマター) 正体不明(カウンターストップ) 死角移動(キルポイント) 透視能力(クレアボイアンス) 気力絶縁(インシュレーション) 空気風船(エアバッグ) 風力使い(エアロシューター) 七鍵守護神(ハーロ・イーン) 風子使い(ヒトデマスター) 記憶操作(マインドハウンド) 空力使い(エアロハンド) 電撃使い(エレクトロマスター) 量子変速(シンクロトロン) 衝撃拡散(ショックアブソーバー) 意見解析(スキルポリグラフ) 多重能力者(デュアルスキル) 偏光能力(トリックアート) 火炎放射(ファイアスロアー) 予知能力(ファービジョン) 思念使い(マテリアライズ) 多才能力(マルチスキル) 洗脳能力(マリオネッテ) 座標移動(ムーブポイント) 心理定規(メジャーハート) 肉体変化(メタモルフォーゼ) 原子崩し(メルトダウナー) 心理掌握(メンタルアウト) 竜王の顎(ドラゴンストライク) 偽装能力(ダミースキル) 禁書目録(インデックス) 黒色槍騎兵艦隊(シュワルツ・ランツェンレイター) 偽善使い(フォックスワード) 冥土帰し(ヘヴンキャンセラー) 告解の火曜(マルディグラ) 追跡封じ(ルートディスターブ) 竜王の殺息(ドラゴンブレス) 竜破斬(ドラグ・スレイブ) 魔滅の声(シェオールフィア) 魔女狩りの王(イノケンティウス) 吸血殺し(ディープブラッド) 黄金練成(アルス=マグナ) 瞬間錬金(リメン=マグナ) 御使堕し(エンゼルフォール) 強制詠唱(スペルインターセプト) 神の力(ガブリエル)
104 名前:デフォルトの名無しさん mailto:sage [2008/11/23(日) 14:33:25 ] 関係ないの混じってるw
105 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 13:43:54 ] 禁書は幼女までたどり着くのかなあ その前で終わりそうで悲しい
106 名前:デフォルトの名無しさん [2008/11/24(月) 17:20:12 ] >>103 厨二病すぎて吹いたwww
107 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 01:44:09 ] もうやめてください…(;-;)
108 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 23:19:16 ] www.hobbystock.jp/item/gallery/HBY-ACF-00001336
109 名前:デフォルトの名無しさん mailto:sage [2008/12/02(火) 01:38:58 ] blog-imgs-41.fc2.com/y/u/n/yunakiti/1228039396954.jpg
110 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:13:47 ] 「このライトノベルがすごい!2009」が発売になっている。 これは、読者による作品やキャラクターのランキングが掲載されているライトノベルのガイドブック 「このライトノベルがすごい!」の2009年版。 ランキングの他にもライトノベル作家のインタビュー、ジャンル別作品紹介、 今後のライトノベルの予想などが細かく行われているのも特徴で、 ライトノベル界の”ミシュラン”ともいえる本となっている。 ライトノベルはひと月に何十冊もリリースされるため、 どれを読んだらいいか悩んでしまうという人や 新しい作品に挑戦してみたいという人も、 眼を通してみるといいかもしれない。 「このライトノベルがすごい!2009」 作品部門ランキングTOP10: 1位「とある魔術の禁書目録」/ ?注目 2位「"文学少女"シリーズ」/ 3位「バカとテストと召喚獣」/ 4位「とらドラ!」/ 5位「狼と香辛料」/ 6位「"化物語" シリーズ」/ 7位「"生徒会の一存"シリーズ」/ 8位「フルメタル・パニック!」/ 9位「嘘つきみーくんと壊れたまーちゃん」/ 10位「とある飛空士への追憶」
111 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:19:16 ] ライトノベルなんてロードス島戦記ぐらいしか読んだこと無い
112 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:37:00 ] 昔は赤川次郎ですら幼稚だとバカにされたもんだがなぁ…
113 名前:デフォルトの名無しさん mailto:sage [2008/12/04(木) 23:37:08 ] _. --──── -- 、 / ` ー 、 / \ / / \ 頭巾臭せーんだよ! / / ________ ノ / ,′ イ ̄ `l | -‐''´'´ | /| -─- ,__-‐'''´-‐'''-‐''´ | / ハ___-γ--''´ ̄ / / ノ /_.イ イ弋 / // / ` . / l  ̄ 7|/| "} l l | | ', / | ∧| ノ "}| l | 丶 . / | // | :| ,. -'´ \' . / // | | ) / :∠ミーニ丶、 |`! !' ,/ / 厶-、| ト. _\丶、__ ../ ̄>-'⌒ー‐r;┬' ∠ミーニ= / / / ̄ ヽ、 >- ≦ノ| | /´⌒ く\ . / __. イ / /⌒ヽ\ // | | しl⌒ヽ ∨ /  ̄ | { /⌒l\\/7 | | 〈⌒ヽ | ,′ l ヽ /⌒l \ / / / 〈⌒ ノ . { | >ー-く´ / / / /`ー'7
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でもアレコレやってみましたが、 こちらは動的に切り替える方法が全く分かりませんでした。
115 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 11:03:30 ] Hibernate EntityManager+Springで動的切り替えはやったことある EntityManagerの委譲クラスを作って、メソッド呼び出しのタイミングで スレッドローカルに保持しておいたユーザ情報を見て 利用するPersistenceContextを選択するというやり方をした
116 名前:デフォルトの名無しさん mailto:sage [2008/12/05(金) 22:13:47 ] >>110 ハルヒとかシャナってないのな。 以外だ。
117 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 13:43:24 ] 以外だ?以上だ?
118 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 17:54:28 ] >>114 iBatis + Spring の環境だけど、DataSource のサブクラスを自分で作って、 Spring が getConnection するときに、スレッドローカルなりに格納されてきたユーザ名に応じて 接続先の JDBC DB ユーザ名というを変える、というようなことをやっているよ。 SQL レベルで、 select * from スキーマ名.テーブル名 にはしたくない。
119 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 19:26:20 ] >>118 Connection時にDataSourceのユーザを切り替るということはコネクションプーリングを 考えないということでしょうか? >>115 のやり方もちょこっと調べてみましたが同様の考え方のように見受けられました。 (なにやら難しそうで読んだだけでは理解が追いつかなかった・・・) でも確かに接続ユーザ自体を切り替えるほうが安全で SQLでスキーマ名.テーブル名ってやっちゃうと、何かの弾みで 別スキーマのデータにアクセスできてしまうという危険がありますからね。 そもそもこのような使い方する場合はコネクションプーリングを考えないほうがいいのかな。 よくDB接続時の負荷が高いというのを見ますが、その辺は大丈夫なんでしょうか?
120 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 21:07:11 ] >>119 切り替える分のデータソースを予め定義しておいて、 そのDataSourceを使うiBatisなりHibernateなりのアプリレベルで切り替えればいい 言ってることが理解できないのなら、もうちょっとJavaのDBアクセス関連を勉強した方がいい
121 名前:デフォルトの名無しさん mailto:sage [2008/12/06(土) 21:41:17 ] >>119 Seasar2には標準でその機能が用意されてる ttp://s2container.seasar.org/2.4/ja/jdbc.html#DataSourceDynamicSwiching ttp://svn.seasar.org/browse/trunk/seasar2/s2-extension/src/main/java/org/seasar/extension/datasource/impl/SelectableDataSourceProxy.java?root=s2container&view=markup ttp://svn.seasar.org/browse/trunk/seasar2/s2-extension/src/main/java/org/seasar/extension/datasource/impl/DataSourceFactoryImpl.java?root=s2container&view=markup
122 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 03:18:28 ] >>120 スキーマは動的に増えていくので、その数分データソースを 用意しておくというのは現実的じゃないんですよ。 なんせゼロからjavaでやるの初めてなんで、 おっしゃる通り勉強し直してきます・・・。 >>121 で、試行錯誤の末なんとか実現できそうです。 sqlMapConfig側で <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="org.postgresql.Driver"/> <property name="JDBC.ConnectionURL" value="jdbc:postgresql://....."/> <property name="JDBC.Username" value="${username}"/> <property name="JDBC.Password" value="${password}"/> </dataSource> ソース側で Properties props = new Properties(); props.setProperty("username", "hoge"); props.setProperty("password", "1234"); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader, props); とやることで指定したユーザで接続できました。 これを開始時に行って取得したsqlMapを使いまわせば実現できそうです。 色々と情報ありがとうございました。
123 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 13:11:43 ] スキーマ動的に増えるとか何かの冗談?
124 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 21:23:07 ] インデックスが脇役になってた tv2ch.com/jlab-10s/s/10s96973.jpg dat.2chan.net:81/18/src/1228585436408.jpg
125 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:28:31 ] ORツールを導入するプロジェクトの規模ってどのくらいからが妥当ですか?
126 名前:デフォルトの名無しさん mailto:sage [2008/12/07(日) 22:59:25 ] 1人で開発する場合から妥当
127 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 03:12:38 ] >>123 スキーマ動的に増える設計のシステム保守してるよ。 案外冗談でもないんだな。これが。
128 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 03:31:14 ] むしろひとりだとORMつかってうまーの規模だな。
129 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 09:43:37 ] プロジェクトで ORM 導入を考えるときは、 便利だけど使いこなすのが難しいので、メンバーに使いこなせるかどうか とか考えなければいけないけど、ひとりだと自分の好きなツールを使えるからいいね。
130 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 19:23:51 ] メンバーのスキルは期待できない。 SQLなら多少書ける。 っというのであれば、DBUtilsやiBatisあたりを使ってりゃいいんじゃね。
131 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:26:41 ] スキルが期待できない開発者はSQLもとんでもないのを書くことが多いw
132 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:28:09 ] ぶっちゃけオブジェクト指向よりSQLの方が簡単なので ORMの説明してもSQLじゃないと出来ないとか言われるのが落ち
133 名前:デフォルトの名無しさん mailto:sage [2008/12/08(月) 21:57:54 ] オブジェクト指向よりSQLのほうが簡単?マジ? 使う側の話だよね? SQLとの比較ってことは、クラス設計ではなくて、誰かが作ったクラス使う場合だよね。
134 名前:デフォルトの名無しさん mailto:age [2008/12/09(火) 01:52:58 ] age
135 名前:デフォルトの名無しさん mailto:sage [2008/12/09(火) 02:02:31 ] Entityクラスくらい誰でも作れるだろ
136 名前:デフォルトの名無しさん mailto:sage [2008/12/10(水) 23:57:32 ] 禁書って2クールだったのか
137 名前:デフォルトの名無しさん [2008/12/11(木) 01:01:18 ] オレもDBからデータ引っ張るときはSQLで考える方が楽だと思う。 WHEREにORとかBETWEENとか必要で、 GROUP BYでMAXとらなきゃいけないケースが多いからかもしれないけど、 これをORMで、ってなったらゴメンナサイだわ。
138 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 21:53:12 ] group byって標準APIであるJPAにもあった気がするけど
139 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:04:15 ] GROUP BYでMAXはORMでも簡単じゃないか? テーブル結合とかがかなり面倒って感じかな
140 名前:デフォルトの名無しさん mailto:sage [2008/12/11(木) 22:08:42 ] ORMの場合最初に設計時に関連かいてるからね FKつけないとかいうトンデモな場所だと使いにくい
141 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 07:59:47 ] 逆にORM意識して規約に従ったDB設計やっていたら 結合がアホのように簡単になる スキーマをいじれるときはORMで いじれないときはSQL重視でやるのがいいと思う