2016-05-16 89 views
1

现在我正在研究一个Web应用程序(绝对有限的java/oracle sql经验),我非常渴望获得帮助。如何将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> 

和我的SQL(依偎在Java页面在另一个JSP页面):

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

现在WHERE SEMESTER_ID = '+semester+' ");它报告没有值。 我的问题是:如何从jsp页面获取学期值(“1”,“2”等)到sql - SEMESTER_ID = [INSERT JSP VALUE HERE]

我知道这看起来像就像一个完整的混乱,但我只是想找到最快的解决方案,因为我已经在这方面工作了很长时间,并且在几个小时内就会完成。非常感谢你为任何人提供的帮助!

回答

0

我无法帮助你与Java方面,但你的SQL语句看起来像缺少一些联接。

您将以CRS_SEC_SR中的每一行匹配CRS_COMMENTS_SR中的每一行,然后所有这些行匹配DEPT_SR中的每一行,等等......您将以N*O*P*Q行结束。那真的是你想要的吗?

此外,我怀疑你的问题是*以下​​。要么是因为您使用select *进行测试而导致的后遗症,要么是将两列相乘,但忘记添加到第二列。我怀疑前者。

我觉得你的SQL语句应该是这个样子:

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%' 

你必须在连接条件添加(和修改加入到左/右外连接,如果适用)。

where semester_id = '%semester%'是否正确?目前,它看起来像你正在寻找一个字符串,如下所示:%semester%我不确定%是否代表变量替换?如果是这样,理想情况下你应该使用绑定变量。 IME,ID的通常是数字。

+0

因此,我更新了我在sql语句中所做的更改,我拿出了一大堆表(它仍然没有它),但我的困难是where语句。我不确定如何将jsp“学期”标识和值转换为数据库中的sql SEMESTER_ID值。 –

+0

我无法帮助,对不起。希望别人能够尽快相处,并能够帮助其他人。祝你好运! – Boneist

+0

你错过了太多的代码能够帮助你。你在另一个jsp页面上写'java页面',我不知道这意味着什么。您需要在代码中显示您检索学期输入值的位置。打印出来,以验证你有你期望的价值。另外,你的查询也会搞砸,@Boneist给你提供了指导。 – ghenghy