现在我正在开发一个Web应用程序(具有绝对有限的java / oracle sql经验),我非常渴望得到帮助。
我正在尝试从jsp页面的semester id下的value标签中获取值:
<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(位于另一个jsp页面的java页面中):
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 :(得分:0)
我无法帮助你解决java方面问题,但是你的SQL语句似乎缺少一些连接。
你最终会在CRS_SEC_SR中的每一行与CRS_COMMENTS_SR中的每一行匹配,然后所有这些行与DEPT_SR中的每一行匹配......你最终会得到{{1行。这真的是你想要的吗?
此外,我怀疑您的问题是N*O*P*Q
*
之后的CRS_COMMENTS5
。这可能是您在使用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通常是数字。