- - PR -
DBの項目に関するクラスに対する実データのクラスの作り方について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-19 16:29
始めまして、申し訳ないですがどなたかお力をお貸しください。
現在DBに複数の定数が登録されておりそれぞれのテーブルに対しての参照、登録などを1種類のプログラムで行おうとしています。言い方が難しいですが、どの定数であろうと同じソースを用いてDBへのアクセスを行うと言った感じでしょうか。 現在のところ定数の設定自体はXMLに記述しておりそれを読み込んでインスタンスを作成しており、コードは 定数 public class ConstantBean{ /** * 定数の持つデータを保持 */ private ArrayList dataList = null; private String constantName = ""; private String constantDBName = ""; private int numOfCol = 0; private int useableUserType = -1; /** * コンストラクタ * @return */ public ConstantBean(){ dataList = new ArrayList(); } public void add(ConstantDataBean cdb){ dataList.add(cdb); numOfCol++; } public List getDataList(){ return dataList; } //private宣言されている別の変数のセッタ、ゲッタは省略 } これが定数テーブルについてのクラスで、それぞれのデータ項目は データ項目クラスを用いて public class ConstantDataBean{ private String dataName = ""; private String dataDBName = ""; private String dataType= ""; private String anotherTblDBName = ""; private String anotherTblDataDBName = ""; private int numOfByte = -1; private boolean editable = false; private boolean pKey = false; private boolean completely = false; private boolean referAnotherTbl = false; //セッタゲッタは省略 } のようになっています。 そして、実際に検索を行ったり一覧表示をするためのクラスを作成しなければならないと思うのですがクラスをどのように作成すればいいのか見当がつきません。 定数データクラスの規則に則っているかをチェックする必要があるため定数データクラスとなんらかの関係を持つ必要があるとは思うのですがどうすればいいのか。 また、それぞれの項目がばらばらでは困るのでこれらをCollectionインタフェースを実装したクラスを用いて管理をする必要があると思うのですが検索結果を表示する場合にはこのコレクションのコレクションを作らなければならないのか? と考えてしまいわけがわからなくなってしまっています。 乱筆乱文申し訳ありませんが、力を貸してください。お願いします | ||||||||
|
投稿日時: 2005-06-20 06:25
どういうメソッドでクライアントがこのプログラムを利用しようと考えていますか?
| ||||||||
|
投稿日時: 2005-06-20 13:13
こんにちは、moneです。
この部分が理解できません。 無理やり読んで 対象のDBには複数のテーブルがあり それぞれのテーブルにはコードが割り振られている。 XMLの設定ファイルからコードを読み込み、 参照するテーブルを判断して データを取得してくる。 と理解しましたが、 認識は正しいでしょうか?
検索を行ったり一覧表示を行うクラスとありますが どのように実現しようとしているのか全く見えません。 検索をクラスで行うということは、 SQL文で取得してくる際に条件指定せず全件取得し、 そのデータを内部で抽出するということですか? また、一覧表示するクラスとは・・・ Javaを使っているのですから JSPを使うことになりますよね、きっと。 その場合はデータビーンとして取得したデータを 渡してあげれば一覧表示は可能かと。 作ろうとしているシステム全体の見通しが ご自身にも明確に見えていないのではないかと思います。 もし、そのような状態ならば いきなりコーディングを始めてしまうのは危険かと。。。 設計はどの程度できているのでしょうか? | ||||||||
|
投稿日時: 2005-06-20 14:39
すいません。自分でも後々見直したら意味わからなくなってました。
わけのわからない日本語を直していただいてありがとうございます。 moneさんのおっしゃっている事でほぼ正しいですが自分でもう一度記述します。 文としてうまく書けそうに無いので箇条書きですが…
といった形です。 後半の方がすごい適当に書いてありますが、『クライアント側で入力された情報をBeanにつめてEJBを呼び出す』のクライアント側で入力された値をBeanにつめるの部分のBeanクラスをどのような形で定義するかを悩んでいる状態です。 項目数は可変ですし設定ファイルを元にしたクラスにある条件に対してチェックを行わなきゃならない(文字数や、文字型など)し…と考えてしまってよくわからなくなっています。
これに関しては言いにくいのですが、設計しながらコーディングが始まっている状態です。 実際きちんと設計しなければコーディングすべきでないのは重々承知なのですが、よんどころのない事情によりこのような形になってしまっています。 一応この質問事項の部分に関するところはコーディングはしておらず、現在は画面と画面設定用Beanや画面表示用Servletの作成までに留めています。 この回答でAnthyhimeさんの質問に対する回答になったでしょうか。 よろしくお願いします | ||||||||
|
投稿日時: 2005-06-20 16:49
こんにちは、moneです。
スマートかどうかはわかりませんが、以下の方法で可能かと。 データビーン List テーブル情報リスト List 取得データリスト #テーブル情報リストには下記テーブル情報をaddしていく。 #データ情報にはSQLから取得したものを順にaddしたListを格納 テーブル情報クラス String 列名 データ形式(String or int??) int 文字数 形式チェッククラス テーブル情報を受け取り、 該当形式のチェックメソッドに渡す JSP部分 データビーンを取得 テーブル等に順に出力していく。 ヘッダ部分に列名を出力 二重ループでデータ部分を表示 ソートしたい場合はhashMapでも使えばよいかな? と、適当に書きましたが 自分が作るんだったら、というものです。 データ量が多いならば、 SQL文で取得する際に何件目から何件目まで取得というように 抽出してきますね。 ご参考になれば幸いです。 | ||||||||
|
投稿日時: 2005-06-28 18:55
moneさん
申し訳ございません。返答が遅れました。 moneさんに教えて頂いた構成とほとんど同じように作成してやってみたところ、うまく取得する事ができました。 ありがとうございました。 |
1