- PR -

DBデータをプロパティ.xmlに格納

投稿者投稿内容
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-04-15 11:09
引用:

夏椰さんの書き込み (2005-04-15 10:07) より:
[code]
props.put(val[i], key[i]);
[/code
ただ、やはり値( 上記例でいうと2000とか2001)の重複は許されなかったです。



key と val が逆になっていませんか?(^^
今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2005-04-15 11:29
引用:

YOU@ITさんの書き込み (2005-04-15 11:09) より:

key と val が逆になっていませんか?(^^



ありょっ、失礼しました(>_<;

ttsk
会議室デビュー日: 2005/04/08
投稿数: 14
投稿日時: 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様、夏椰様 初学者におつきあいいただきありがとうございました。
キルシェ
常連さん
会議室デビュー日: 2004/03/25
投稿数: 26
投稿日時: 2005-04-16 21:48
四件目の投稿のプログラムのままでしたら、六件目の夏椰さんの指摘の通りでしょうか・・・。

レコード1件に対して固定名のファイルを作成して出力する処理を
for文でループしているのであれば、最後の1件のみというのもうなずけます。
(1レコードごとに、"hoge.xml"に上書きしている)

DB接続に使ったプロパティファイルに出力するときと、新規のプロパティ
インスタンスに出力するときで、固定名のファイルを生成する箇所は同じなのでしょうか?


[ メッセージ編集済み 編集者: キルシェ 編集日時 2005-04-16 21:55 ]
ttsk
会議室デビュー日: 2005/04/08
投稿数: 14
投稿日時: 2005-04-17 09:19
キルシェ様>>>四件目の投稿のプログラムのままでしたら、六件目の夏椰さんの指摘の通りで
キルシェ様>>>しょうか・・・。

キルシェ様>>>レコード1件に対して固定名のファイルを作成して出力する処理を
キルシェ様>>>for文でループしているのであれば、最後の1件のみというのもうなずけます。
キルシェ様>>>1レコードごとに、"hoge.xml"に上書きしている)

キルシェ様>>>DB接続に使ったプロパティファイルに出力するときと、新規のプロパティ
キルシェ様>>>インスタンスに出力するときで、固定名のファイルを生成する箇所は同じなので
キルシェ様>>>しょうか?

________________________________________________________________
# 問題はインピーダンスミスマッチ?

元質問者としてはこの問題をべつの面から探ってみたいと思っています。

ご質問に対する答えになっていませんがご了解ください。

もちろん、表題の具体的な解決案があればお教え願います。


[ メッセージ編集済み 編集者: ttsk 編集日時 2005-04-17 09:22 ]
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-04-17 16:46
うーん、と言うか夏椰さんの6つめの投稿が具体的な解決方法ではないでしょうか?
# props.put(val[i], key[i])のvalとkeyが逆転している部分はなおさないといけませんが

問題は、ttskさんがインスタンスのスコープを理解されていないことだと思いますよ。

Propertiesのインスタンスはいくつ必要でスコープはどの範囲なのか、
OutputStreamのインスタンスはいくつ必要でスコープはどの範囲なのか、
を明確にするだけだと思います。

ttsk
会議室デビュー日: 2005/04/08
投稿数: 14
投稿日時: 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 ]
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-04-17 22:55
むむ、ちょっと話がかみ合ってなさそうですね。

その80レコードのデータを1つのXMLファイルに出力したいんですよね?
ところが、やってみたところ最後の1レコード分しかファイルに出力されなかった。

で、夏椰さんやキルシェさんもご指摘のように、
OutputStreamやPropertiesのインスタンスが、ループ内に入っていて
1レコード毎に新しいOutputStreamとPropertiesがインスタンス化されてしまい、
結果的に最後の1レコードしかファイルに残らない状態になっていると考えられると。

1つのファイルに全レコードを出力したいのであれば、OutputStreamとPropertiesの
インスタンスは処理全体で1つあればいいわけですよね。
# つまり、インスタンスの数は1つで、スコープは処理全体ですね。


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