2016-05-16 6 views
1

今、私は(絶対に制限されたjava/oracle sqlエクスペリエンスで)Webアプリケーションを開発しています。JSPタグをSQLに変換するにはどうすればいいですか

私は、JSPページから学期IDで値タグから値を取得しようとしている:

<tr> 
     <th><label for="semester">Semester:</label></th> 
     <td><select id="semester" name="semester"> 
      <option value='1'>Spring 2007 (01/29/2007 to 05/17/2007)</option> 
      <option value='2'>January Intersession 2007 (01/02/2007 to 01/25/2007)</option> 
      <option value='3'>Fall 2006 (08/30/2006 to 12/13/2006)</option> 
      <option value='4'>Summer ALL 2006 (06/01/2006 to 08/17/2006)</option> 
      <option value='5'>Summer00 2006 (06/01/2006 to 08/17/2006)</option> 
      <option value='6'>Summer02 2006 (07/10/2006 to 08/17/2006)</option> 
      <option value='7'>Summer01 2006 (06/01/2006 to 07/06/2006)</option> 

     </select></td> 
    </tr> 

と(別のJSPページにJavaのページに囲まれた)私のSQL:

ResultSet rs = stmt.executeQuery("SELECT *" + 
    "FROM CRS_SEC_SR, CRS_COMMENTS_SR, SEMESTER_SR "+ 
    "WHERE SEMESTER_ID = '+semester+'"); 

今すぐWHERE SEMESTER_ID = '+semester+' ");は値なしで報告します。 私の質問は、どのようにjspページからSQLにセミスター値( "1"、 "2"など)を取得するのですか? - SEMESTER_ID = [ここにJSP値を挿入]

完全な混乱のようなものですが、私はこれを年月をかけて取り組んできたので最短の解決策を見つけようとしています。誰にでも助けてくれてありがとう、ありがとう!

答えて

0

私はあなたのJava側を助けることはできませんが、あなたのSQLステートメントはいくつかの結合が見付からないように見えます。

CRS_SEC_SRの各行がCRS_COMMENTS_SRのすべての単一行に一致するようになり、DEPT_SRなどのすべての行に一致する行がすべて一致するようになります... N*O*P*Q行。それは本当にあなたが望んでいたものですか?

また、*の後に​​の問題があると思われます。どちらかというと、select *でテストしていた時の二日酔いですが、2つの列を掛けようとしていますが、2番目の列に追加するのを忘れています。私は前者と思われる。あなたが参加する条件に追加する必要があります

select disc, 
     crs_cd, 
     crs_sec, 
     meeting_days, 
     start_time, 
     stop_time, 
     start_date, 
     end_date, 
     building, 
     rm, 
     instructor_lname, 
     seats_avail, 
     crs_comments1, 
     crs_comments2, 
     crs_comments3, 
     crs_comments4, 
     crs_comments5 
from crs_sec_sr 
     inner join crs_comments_sr on (<some join condition(s)>) 
     inner join dept_sr on (<some join condition(s)>) 
     inner join cours_sr on (<some join condition(s)>) 
where semester_id = '%semester%' 

(および適切であれば参加する権利/外側を左に加入修正):

は、私はあなたのSQL文のようなものになるはずだと思います。

where semester_id = '%semester%'は正しいですか?現在のところ、あなたは次のような文字列を検索しているようです:%semester%%が変数置換を表すことになっているのかどうか分かりませんか?その場合は、理想的にはバインド変数を使用する必要があります。 IME、idは通常数値です。

+0

私はSQLステートメントで行った変更を更新しました。テーブルの大部分を取り出しましたが(それはまだ動作しませんが)、難易度はwhereステートメントです。私はjspの "semester" idとvalueをデータベースのSQL SEMESTER_ID値にどのように変換するのか分かりません。 –

+0

私はそれを助けることはできません、申し訳ありません。うまくいけば、他の誰かがすぐに来て、残りのあなたを助けることができるようになります。がんばろう! – Boneist

+0

あなたに手を差し伸べるにはあまりにも多くのコードがありません。あなたは「別のJSPページでJavaページを書く」と私はそれが何を意味するか分かりません。学期入力の値を取得するコードを表示する必要があります。それを印刷して、あなたが期待する価値を持っていることを確認してください。また、あなたの質問もうんざりしています。@Boneistはあなたに指導を与えてくれました。 – ghenghy

関連する問題