java - 如何将 JSP 标签转换为 SQL

标签 java sql eclipse oracle jsp

现在我正在开发一个 Web 应用程序(java/oracle 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(位于另一个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]

我知道这看起来一团糟,但我只是想找到最快的解决方案,因为我已经为此工作了很长时间,并且将在一个小时内完成。非常感谢您提供的任何帮助!

最佳答案

我无法在 java 方面帮助您,但是您的 SQL 语句看起来缺少一些连接。

最终,CRS_SEC_SR 中的每一行都会与 CRS_COMMENTS_SR 中的每一行相匹配,然后所有这些行都会与 DEPT_SR 中的每一行相匹配,等等...最终会得到 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 season_id = '%semester%' 正确吗?目前,您似乎正在搜索如下所示的字符串: %semester% 我不确定 % 是否意味着代表变量替换?如果是这样,理想情况下您应该使用绑定(bind)变量。 IME、id 通常是数字。

关于java - 如何将 JSP 标签转换为 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37261212/

相关文章:

java - 如何在运行 junit 测试用例时避免实际的方法调用

mysql - 停止 MySQL BENCHMARK 函数?

android - 为什么 LogCat 将所有项目显示为警告(橙色)?

java - 为什么 POM 类型的依赖项没有在 Maven 树中显示为传递依赖项?

java - 即使没有为它们指定代码,Android Activity 生命周期方法是否有用?

c# - C# DataBase.ExecuteScalar 中的连接泄漏

java - Eclipse:无法识别导入

android - 编译签名的APK并直接从IDE安装?

java - 删除 Int 的 ArrayList 中的连续值

mysql - 如何制作一个较小的表来覆盖另一个较大的表?