- - PR -
初めて投稿します!
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-14 19:12
自分が新入社員だったときのことを考えると、辛いだろうなあと
思うだけです。どこが分からないと聞かれても全部分からないし、 一言一言調べるなんて気が遠くなる、でも期限は決まってる、 ああ・・・就職先間違えたかも・・・というような。全部想像ですが。 少しでも手がかりが掴めて「自分で調べて分かる」ようになると 今まで分からなかったことが突然分かるようになる楽しさが 人より沢山待ってるんですけどね。 以下は適当な抜粋です。ご参考までに。
# コードかなり修正しました。分かりやすさがメインなので美しくはないです。。 [ メッセージ編集済み 編集者: taro 編集日時 2004-07-14 19:33 ] | ||||||||
|
投稿日時: 2004-07-14 19:40
プログラミングそのものや、Javaの基礎知識が不足しているのも確かなようですが、どっちか
というとSQLの問題ではないかと思います。既に指摘されている通り、e_pro_paとca_shouhishaの関係も不明で二つのテーブルの結合条件が示されていない、kosuとcadkがどちらの テーブルのカラムかもわからない、などなどいろいろ問題はあるのですが、 select e_pro_pa.pa_id, kosu * cadk as b FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=ca_shouhisha.pa_id なんてSQLで取ってくれば一度で済むんじゃないの? とか思ったり、もしかすると select ca_shouhisha.pa_id, sum(kosu * cadk) as b FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=ca_shouhisha.pa_id group by ca_shouhisha.pa_id こういうことかもしれない、とか思ったり まあ何はともあれ問題を整理して質問できるまでは、近くの先輩を頼ることですね。 個人的な意見ですが、仕事を頼んだときには、間に合わなくなる前に「できません」て言って くれるほうがいいですね。もちろんろくに調べもせずに「できない」と言われても困りますが。 | ||||||||
|
投稿日時: 2004-07-15 08:30
まず、BBSでもMLでも、直接顔と顔をつきあわせているわけではないので、急いでいるものをこういうところで聞くべきではありません。私だって私の仕事があるんです。休憩したいときにしか覗きません。 次に共通するクラスはありません。しかし、どのクラスがどのクラスに対応するかは、見ればわかると思うのですが。。。 OleDbCommand cmd = new OleDbCommand(new OleDbConnection()); OleDbCommandと、OleDbConnectionですが、OleDbConnectionについてはそのままConnectionインタフェイスが対応します。Connectionって書いてあるんだからそれくらいわかると思ったのですが。 OleDbCommandについては、その次の行で、 cmd.CommandText = "SELECT … ってやっているのだから、「ここにSQL文を入れるんだな」ということがわかると思ったのですが…。ということで、Statementインタフェイスが対応します。 と、いいたいところですが、その下の方でパラメータを使っています。なのでここはPreparedStatementインタフェイスになります。 それぞれのインスタンスを準備する方法、パラメータの設定の方法については、ドキュメントを見ればわかると思うので割愛します。
製品が増加したら、やっぱりプログラムを1つ1つ書いていく、それがOOでの手法かなぁ?つまり、クラスというプログラムが増えていく、ということですが。ただ、毎回同じことを書くのは、やはりいやなので、スーパークラスを作って、その中で処理できるなら処理します。プログラム(クラス)を分けておくことで、特定の製品については特別なコードを実行しなければならなくなっても、その他の製品については影響が無くなります。 で、「例:for文など」という例は先輩から出てきたんでしょうね。ということは、せっかくJavaで作っていながら、Javaの特徴的なところは使っていない、っつうこうとなのかな? 加えて、こういう文章は読み手が疲れます。何もあなただけを相手しているわけではないので。つまり、私も今まで読んでなかった、ってことです。 [例] 現状: ・6原料→3部品→1製品 ・1製品ごとにプログラムを作成 問題: ・製品が増加→プログラムが増加→作成、管理に手間がかかる 課題: ・製品が増加しても作成、管理の手間を増やさない 目標: ・30原料→10部品→5製品 [/例] と、箇条書きにまとめると、読みやすいし、あなたにとってもわかり易いのではないでしょうか。これ、プレゼン資料作成の手法でもあるので、マスターしてください。 もちろん、文章があった方が理解はできるので、プレゼンではそれをしゃべりで補い、こういうところでは、「質問事項のまとめ」として、書き足しておきます。 | ||||||||
|
投稿日時: 2004-07-15 10:27
あいつーです。
で、結局JSPにおけるコンパイルエラーの件は解決したのでしょうか? クラス、メソッド、JSP、Servlet・・・この辺りの用語については理解されましたか? ちなみに、Java<->C#の読み替え以前に、手持ちのソース内に存在する クラス及び語句は理解されましたか? 分らない単語があるのであればプログラムに手をつける前に そこから調べるほうが早いかもしれませんよ。 …というか、ukさんの仰る通り、結局はSQLの問題のような気がしないでもないですね。 idを一つずつ指定するのではなくidの範囲(または値のセット)を指定しておいて、 GROUP BYでまとめて、ResultSetを操作して個々の製品(部品?)に振り分けていく、 という形でも出来るとは思うのですが。 | ||||||||
|
投稿日時: 2004-07-15 10:52
返信遅れてすいません。レスをくれたみなさんありがとうございます!みなさんのレスを参考にしながら自分で勉強しつつがんばっています。
コンパイルエラーはまだ解決していません。いろいろやってみてはいるのですが・・・ Jittaさん、勉強不足で申し訳ないです。。。問題の仕方もご教授ありがとうございます。次からは注意して質問しようと思います! 引用: //b1の値を求める Statement st1 = conn.createStatement(); String sql1 = "select kosu * cadk as b1 FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=1 "; //実行する ResultSet rs1 = st1.executeQuery(sql1); //b2の値を求める Statement st2 = conn.createStatement(); String sql2 = "select kosu * cadk as b2 FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=2 "; //実行する ResultSet rs2 = st2.executeQuery(sql2); //b3の値を求める Statement st3 = conn.createStatement(); String sql3 = "select kosu * cadk as b3 FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=3 "; //実行する ResultSet rs3 = st3.executeQuery(sql3); このプログラムを使うとSQLのとこでエラーもでずに実行はできるのですが、以前Kissingerさんが書いてくださったコード コード: ResultSet query(int n) { Statement st = conn.createStatement(); String sql = "select kosu * cadk as b" + n + "FROM e_pro_pa,ca_shouhisha where e_pro_pa.pa_id=" + n + " "; ResultSet rs = st.executeQuery(sql); } をもとにいろいろプログラムを変えてみてはいるのですが、SQLのとこでエラーは出ずに、 C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\jsp\recycle\e_kazu_sano_jsp.java:75: ';' がありません。 ResultSet query(int n) { ^ というエラーがずっとでていて消えない状況です。 [ メッセージ編集済み 編集者: jason 編集日時 2004-07-15 11:22 ] | ||||||||
|
投稿日時: 2004-07-15 17:43
単なるトライアンドエラーでは、いつまでたっても進歩しません。JavaやJSPの基本的な部分 の理解が足りなくて問題が起きているわけなので、一つ解決したとしても次々に問題が起こる でしょう。そのたびに掲示板に聞くわけにはいかないでしょう。時間がかかっても体系的に 基本を修得すべきです。 とはいっても、
いつもでもここで引っかかっていてはかわいそうなので、ヒントです。JSPではスクリプト レット(<% %>で囲まれた部分)にメソッドを記述することはできません。メソッドは宣言 (<%! %>で囲まれた部分)に記述します。もしスクリプトレットや宣言がわからなければ、 コードを書く前にJSPの入門書を読んでください。 | ||||||||
|
投稿日時: 2004-07-15 17:59
msoです。
なんか進捗がない気がするのですが、 原因の切り分けはできているのでしょうか? 何が問題かわからないでやっているとずっと 同じところでエラーを出力するだけになります。 #すでになっている? ”どうしても分からない”&”納期が迫っている”のであれば、 会社の先輩に事情を話し相談に乗ってもらうのがビジネスでは ないでしょうか? 遅れてもいい程度の仕事ならば、自分でやってみるのもいいと思います。 | ||||||||
|
投稿日時: 2004-07-16 11:22
to jasonさんの先輩
OJTは「やっといて」じゃなくて、「一緒にやろう」でしょう?『x = x + 20 ではxが30になり、等しくないからです』(2004-07-12 20:56)なんて言う人に「なるべく自分の力でがんばれ」は、言いたくなる気持ちはわかりますが、隣で見ていてあげないとできるわけないじゃないですか。あなたの会社の資源であり、あなた自身の資源ともなる人ですよ。ちゃんと面倒見てあげてください。 to jasonさん 先にも書いたように、ここに書いてもいつ回答が得られるかわからないんですよ。それより、先輩をあなたのところへつれてくる方が早いです。期限があるんでしょう?だったらなおさらです。それができなかったら、誰が責任取るんですか?聞いても教えてくれなかった、この掲示板に出入りしている人ですか?あなたですか?違いますよ。あなたに仕事を振った先輩ですよ。そのことを先輩にもわからせてください。あなたは責任を取れる立場ではありません。あなたの力量を計れず、または計らずに仕事を振り、「自分の力でがんばれ」と言って、教えることをしなかったあなたの先輩にこそ、責任があります。 | ||||||||
