- PR -

プロジェクトで採用しているデータベースへのアクセス方法(OR Mapping)

投票結果総投票数:138
JDBC 83 60.14%
EJB 19 13.77%
Torque等のオープンソース 15 10.87%
市販のORマッピングツール 0 0.00%
独自で開発したフレームワーク 19 13.77%
その他 2 1.45%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
yuu
大ベテラン
会議室デビュー日: 2002/06/12
投稿数: 152
お住まい・勤務地: 美味しいケーキ店のそば
投稿日時: 2003-09-27 13:31
とんびさん wrote: -----------------------------------------------------------
自分が、ORマッピングツールマッピングツールに求めるものは
1.SQLに慣れてるとsql直接たたいたほうが、わかりやすい&早いのでSQLは隠さないでほしい。
2.ResultSetからBeanへの移し変えは面倒なので、自動or設定ファイルでやってほしい。
-----------------------------------------------------------------------------

そうですね、私もそういうことで独自ツールを使ってます。 昔、あるプロジェクトでSQLを隠蔽して初心者にも使いやすいようなライブラリーを使っていましたが、ちょっと複雑な事をしようとすると、直ぐに破綻してSQL文が渡せるような関数が追加されて・・・ というような経験をしました。
それに、そのツール固有の複雑・怪奇な メソッドとか を覚えるより、ちゃんとSQLを学んだ方が有用ですよね。

あと、このツールは 円(¥)型とか、カタカナ型とか、アプリケーションよりの型をサポートしていて、表示の際の形式変換とか、入力の際の変換、チェックを行う機能を持っていています。
たくさんカラムのあるレコードを表示したり、入力したりするようなアプリがスッキリとかけます。 入出力の際に変換とかチェックの関数を呼び出だすのも、案外バカにならないコードになるし、単純作業なので つまらないミスをしたりというのが 防げます。
仕様変更でレコードのカラム追加されるとかいう事はよくありますしね。

まだ、他の方の使って頂けるような完成度になっていないので(使い方に制限がある、ドキュメントやサンプルが無い) オープンにする気はないのですが、ひょっとしたら・・・
Sayo
会議室デビュー日: 2003/09/24
投稿数: 12
お住まい・勤務地: 東京都
投稿日時: 2003-09-29 09:13
引用:

現場の生の声という感じがし、
笑わせていただきました^^



いえいえ、笑っていただけて幸いです。(笑)

引用:

いたずらに高度な技術を採用して、
プロジェクトをリスキーにする必要など
ありませんよね。



私もそうだと思います。
今自信をもって出せる技術で、安心なものを提供できれば
それでいいと思います。
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-29 09:28
引用:

Kirikoさんの書き込み (2003-09-27 08:32) より:
話は変わりますが、
昨日、久しぶりに本屋に行って見ました。
タイトルは忘れてしまいましたが、^^;
EJBの設計&Programmingに関するとてもよさそうな本を見つけました。
海外本の翻訳らしく、かなり分厚くて、価格は5、6千円くらい
だったと思います。
市場価値の高い"J2EEアーキテクト"を目指す方は、
一度チェックされてはいかがでしょうか。^^


 私のお勧めは「プロフェッショナルEJB」です。
http://www.cbook24.com/bm_detail.asp?sku=4844316508
お値段6980円で、私の蔵書の中では最高額です。
ウラタン
常連さん
会議室デビュー日: 2003/07/25
投稿数: 29
投稿日時: 2003-09-29 10:01
おはようございます。

>「その手前で分散されると困る」とあるのですが、これはどのようなケースでしょうか。

んーとですね。
モノ(製品)によるのですが、業務ロジックが長くてデータのやりとりが往復で発生する
システムの場合、困ることがあります。

例えば、フロント側から、Web+APサーバー、EJBサーバー(複数)、DBサーバ
ーと3階層になってたとします。(DBは一台)
ここで、DBが単発のトランザクションしか発生せずに、基本的にロールバックの必要が
ない場合は、特に問題がない場合が多いです。
しかし、DB側で初期化等の処理が必要な場合、セッションやトランザクションとして相
手マシンを意識する場合があります。
最初にEJBサーバーAからDBに初期化が起こり、セッションを張って、その後でEJ
BサーバーBからDBのデータを取ろうとしても、DB側でエラーになったりします。

ただのエンティティのような感覚で使っているとこのような話はあまり関係ないですが、
古い? 設計を持つDBを使っていたり、APIのラッピングがなされていたりすると、
どこから接続しても同じ、ってワケにいかないことがあります。
下層で独自のセッション管理が行われている場合ですね。

また、このような場合のエラーをどう管理するか、などのことを考えると、耐久性の向上
も割と奥が深いテーマです。
特にどこかに非同期の処理があったりすると、処理が途中で落ちた場合にどうするかとか
結構悩みます。
IIOPで通信エラーになってしまった場合、DB側のセッション開放ができないとか。


こんな感じのことで、まだ、分散は躊躇することが多いですね。
2003サーバーのクラスタリングでできないのかなーとか、色々考えてまふ(^^;;
Kiriko
常連さん
会議室デビュー日: 2003/09/25
投稿数: 25
投稿日時: 2003-09-30 06:40
おはようございます。

ウラタンさん
ご説明していただきありがとうございます。

ただ、今の私の経験、スキルではウラタンさんのおっしゃりたいことの
数パーセント(限りなく0に近い^^;)しか理解できてないのが
正直なところです。
分散ってやっかいそうだなあとは感じました。

今回、いろんなエンジニアの方のご意見を聞くことができて、
とても楽しかったです。
明日から、いよいよJavaでのWeb開発プロジェクトに参加することになったのですが、
前向きにがんばっていきたいと思っています。^^
ありがとうございました。
Kiriko
常連さん
会議室デビュー日: 2003/09/25
投稿数: 25
投稿日時: 2003-10-01 16:25
こんにちは。

引用:

タイトルは忘れてしまいましたが、^^;
EJBの設計&Programmingに関するとてもよさそうな本を見つけました。
海外本の翻訳らしく、かなり分厚くて、価格は5、6千円くらい
だったと思います。
市場価値の高い"J2EEアーキテクト"を目指す方は、
一度チェックされてはいかがでしょうか。^^


書籍名がわかりました。
「実践J2EE システムデザイン」ソフトバンク、6500円
です。
http://www.amazon.co.jp/exec/obidos/ASIN/4797322888/249-7620534-8349127

引用:

 私のお勧めは「プロフェッショナルEJB」です。
http://www.cbook24.com/bm_detail.asp?sku=4844316508
お値段6980円で、私の蔵書の中では最高額です。


私も持ってます!!!^^
ちなみに私が購入した最高額の技術書は、
「Active Server Pages 2.0」ソフトバンクで
9,500円です!!!
今とはなっては開くこともなくなりましたが、
ASPが騒がれ始めた頃、ここまで詳しく解説している本は
他になかったので思わず購入したんだと思います^^;
ちなみにお薦めでもなんでもありません^^;
Kiriko
常連さん
会議室デビュー日: 2003/09/25
投稿数: 25
投稿日時: 2003-10-04 18:47
struts-userメーリングリストでも似たようなトピックが
盛り上がってますね
http://www.mail-archive.com/struts-user%40jakarta.apache.org/msg82572.html

やまろう
常連さん
会議室デビュー日: 2003/10/13
投稿数: 35
お住まい・勤務地: 埼玉・東京
投稿日時: 2003-10-25 12:50
僕が参加してるプロジェクトの独自のORマッピング的なものを紹介します。
ORマッピングというほどのものではなくDBアクセスライブラリといったところですが、
Connection,PrePareStatement,ResultSetをラッピングした
Query系とUpdate系のクラスを作りました。これらをインスタンス化した時点で
接続、ステートメントの取得をします。以下のような感じです。
EJBデザインパターンのData Access Commandパターンを継承しないで
使用する感じです。

  MultiRowQuery query = null;
  try {
   query = new MultiRowQuery(sql);
   query.setString(1, empChuCd);
   
   query.execute();
   
   ArrayList list = new ArrayList();
   while (query.next()) {
    String dai = query.getString("emp_dai_cd");
    String chu = query.getString("emp_chu_cd");
    String sho = query.getString("emp_sho_cd");
    String empCd = dai + chu + sho;
    EmpShoriKubunVO data = new EmpShoriKubunVO();
    data.setEmpCd(empCd);
    data.setEmpName(query.getString("emp_name"));
    list.add(data);
   }
   EmpShoriKubunVO[] datas = new EmpShoriKubunVO[list.size()];
   list.toArray(datas);
   return datas;
  } finally {
   if (query != null) {
    query.release();
   }
  }

こんな単純なものでも結構開発は順調に進みましたよ!
直接JDBC書くより全然いいですよ!

スキルアップ/キャリアアップ(JOB@IT)