- - PR -
DBデータをプロパティ.xmlに格納
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-15 11:09
key と val が逆になっていませんか?(^^ | ||||
|
投稿日時: 2005-04-15 11:29
ありょっ、失礼しました(>_<; | ||||
|
投稿日時: 2005-04-16 12:26
ttsk:>>> key=value 平テキストのpropertiesファイルにして試してみます
DB接続に使ったプロパティファイルに追加上書きしますと、DBデータはすべて書き出されます。 ただ、その中にはDB接続のためのプロパティデータが含まれてしまいます。 新規のプロパティインスタンスで"prop2.setProperty(key, val);"すると、以前のように最終レコードの値のみ保存されます。 遅くなりましたが環境は以下です。 windows 2000 SP4 jdk-1.5.0 _____________________ それで私の結論ですが、 DBデータを先に配列に入れておいてから、夏椰様ご投稿のコードでプロパティ.xmlを生成。という方針ですすめていきます。 YOU@IT様、夏椰様 初学者におつきあいいただきありがとうございました。 | ||||
|
投稿日時: 2005-04-16 21:48
四件目の投稿のプログラムのままでしたら、六件目の夏椰さんの指摘の通りでしょうか・・・。
レコード1件に対して固定名のファイルを作成して出力する処理を for文でループしているのであれば、最後の1件のみというのもうなずけます。 (1レコードごとに、"hoge.xml"に上書きしている) DB接続に使ったプロパティファイルに出力するときと、新規のプロパティ インスタンスに出力するときで、固定名のファイルを生成する箇所は同じなのでしょうか? [ メッセージ編集済み 編集者: キルシェ 編集日時 2005-04-16 21:55 ] | ||||
|
投稿日時: 2005-04-17 09:19
キルシェ様>>>四件目の投稿のプログラムのままでしたら、六件目の夏椰さんの指摘の通りで
キルシェ様>>>しょうか・・・。 キルシェ様>>>レコード1件に対して固定名のファイルを作成して出力する処理を キルシェ様>>>for文でループしているのであれば、最後の1件のみというのもうなずけます。 キルシェ様>>>1レコードごとに、"hoge.xml"に上書きしている) キルシェ様>>>DB接続に使ったプロパティファイルに出力するときと、新規のプロパティ キルシェ様>>>インスタンスに出力するときで、固定名のファイルを生成する箇所は同じなので キルシェ様>>>しょうか? ________________________________________________________________ # 問題はインピーダンスミスマッチ? 元質問者としてはこの問題をべつの面から探ってみたいと思っています。 ご質問に対する答えになっていませんがご了解ください。 もちろん、表題の具体的な解決案があればお教え願います。 [ メッセージ編集済み 編集者: ttsk 編集日時 2005-04-17 09:22 ] | ||||
|
投稿日時: 2005-04-17 16:46
うーん、と言うか夏椰さんの6つめの投稿が具体的な解決方法ではないでしょうか?
# props.put(val[i], key[i])のvalとkeyが逆転している部分はなおさないといけませんが 問題は、ttskさんがインスタンスのスコープを理解されていないことだと思いますよ。 Propertiesのインスタンスはいくつ必要でスコープはどの範囲なのか、 OutputStreamのインスタンスはいくつ必要でスコープはどの範囲なのか、 を明確にするだけだと思います。 | ||||
|
投稿日時: 2005-04-17 18:40
YOU@IT様>>>うーん、と言うか夏椰さんの6つめの投稿が具体的な解決方法ではないで
しょうか? ttsk 11件目>>>>>DBデータを先に配列に入れておいてから、夏椰様ご投稿のコードで プロパティ.xml を生成。という方針ですすめていきます。 YOU@IT様>>>Propertiesのインスタンスはいくつ必要でスコープはどの範囲なのか、 OutputStreamのインスタンスはいくつ必要でスコープはどの範囲なのか、 を明確にするだけだと思います。 _______________________________________ 実際の試験用として使いましたMySQL:test.hogetableのレコード数はちょうど80です。 key = ひらがな+小文字ひらがな、 value = ユニコード番号です。 本番では、日常使う漢字とかなを入力してみようと思っていました。 (何に使うの?とは聞かないでください。(^^: で、インスタンスをその分つくるのは最初から無理ではないかと思っていました。 間違っているでしょうか。 [ メッセージ編集済み 編集者: ttsk 編集日時 2005-04-17 18:43 ] [ メッセージ編集済み 編集者: ttsk 編集日時 2005-04-17 18:45 ] | ||||
|
投稿日時: 2005-04-17 22:55
むむ、ちょっと話がかみ合ってなさそうですね。
その80レコードのデータを1つのXMLファイルに出力したいんですよね? ところが、やってみたところ最後の1レコード分しかファイルに出力されなかった。 で、夏椰さんやキルシェさんもご指摘のように、 OutputStreamやPropertiesのインスタンスが、ループ内に入っていて 1レコード毎に新しいOutputStreamとPropertiesがインスタンス化されてしまい、 結果的に最後の1レコードしかファイルに残らない状態になっていると考えられると。 1つのファイルに全レコードを出力したいのであれば、OutputStreamとPropertiesの インスタンスは処理全体で1つあればいいわけですよね。 # つまり、インスタンスの数は1つで、スコープは処理全体ですね。 |