我想在JSP里面执行 
String sql = "SELECT * FROM FT_C_TYPE WHERE UPDATETIME = (SELECT MAX(UPDATETIME) FROM FT_C_TYPE WHERE GC_TYPE = '" + CONDITIONS + "')";
ResultSet rs = stmt.executeQuery(sql);CONDITIONS 是输入的文本框.
为什么这个SQL语句在数据库里面执行能够运行.
在页面上就不能运行了,我少写了什么东西么?
谁能帮下我,谢谢

解决方案 »

  1.   

    我想查询出来输入值的等于GC_TYPE列的(有重复),UPDATETIME列最新的一条.
      

  2.   

    能完整看看你的代码吗
    可能是数据库的连接没有成功吧一般最好不要再jsp页面中执行sql语句 呵呵
      

  3.   

    <%  
    String CONDITIONS = request.getParameter("CONDITIONS");
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();    
      String url="jdbc:oracle:thin:@172.30.216.33:1521:MFAT";
      String user="MCM";
      String password="JAVA";
      Connection conn = DriverManager.getConnection(url,user,password);
      Statement stmt = conn.createStatement();
      String sql = "SELECT * FROM FT_C_TYPE WHERE GC_TYPE = '" + CONDITIONS + "'"; 
      String hql = "SELECT * FROM FT_C_TYPE WHERE UPDATETIME = (SELECT MAX(UPDATETIME) FROM FT_C_TYPE WHERE GC_TYPE = '" + CONDITIONS + "')";
    ResultSet rs = stmt.executeQuery(hql);while(rs.next()){%>   <tr>
    <td><%=rs.getString(1)%></td>
    <td><%=rs.getString(2)%></td>
    <td><%=rs.getString(3)%></td>
    <td><%=rs.getString(4)%></td>
    <td><%=rs.getString(5)%></td>

    </tr>
    <%} 
    %>
    </table>
    <%rs.close();stmt.close();conn.close(); %>
    我的代码,小弟水平不高...不太会其他的
      

  4.   

    ResultSet rs = stmt.executeQuery(hql);  前加入
    System.out.println(hql);
    看看完整sql语句执行一下
      

  5.   

    这个语句??
    他输出在哪里?
    我用的是MyEclipse
    下面那个Console没有,页面上也没有
      

  6.   

    MyEclipse 也有控制台的输出啊System就是输出到控制台上的
      

  7.   

    那就把sql打印出来在oracle中执行一下,看有没有数据。
      

  8.   

    知道,控制台就是下面那个Console里面显示的吧
    没有语句,很郁闷
      

  9.   

    在jsp页面中打印只能去页面上看,你用out.println(hql);
      

  10.   

    你用debug方式启动 让后在
    String CONDITIONS = request.getParameter("CONDITIONS"); 
    加一个断点  然后一步一步的执行 看看
      

  11.   

    - -
    debug.怎么不能运行DEBUG,我是MyEclipse+tomcat6.0
    我的代码没有错么.?>
      

  12.   

    如果没有异常的话,在ResultSet rs = stmt.executeQuery(sql);前面输出sql拉到数据库里运行一下就知道啦!
      

  13.   

    运行过了,SQL语句在数据库里面运行完全没有问题
      

  14.   

    在ResultSet rs = stmt.executeQuery(hql);前面
    加stmt = conn.prepareStatement(sql);stmt = conn.prepareStatement(sql);
    ResultSet rs = stmt.executeQuery();
      

  15.   

    没有,这是我的完整源代码....
    <%@ page contentType="text/html; charset=GB2312" %>  
    <%@ page import="java.sql.*" %>  <html>  
    <head><title>工厂型号计划查询</title>  <script type="text/javascript">
     
    </script>
    </head>  
    <body bgcolor="#78da70">  
    <center>  
    <font size=4 color=blue>
    <h1> 工厂型号 计划查询</h1>
    </font>   
    <table width=200 border=0 cellpadding=0 cellspacing=0>
    <tr>
    <th class="panelTitle">
    友情链接
    </th>
    </tr>
    <tr>
    <td class="panelBody">
    <center>
    <a href="http://172.30.60.54:8080/MFAT/">MICS</a>
    <a href="Insert.jsp">插入页面</a>
    <a href="Login.jsp">登陆</a>
    </center>

    </td>
    </tr>
    </table>
    <form action="Select.jsp" method="get" name="">
    <table border=1 bgcolor="#ccccff" ><tr>
    <td>
    <input type="text" name="CONDITIONS" />
    <input type="submit" value="查询">
    </td>
    </tr>
    <tr>
    <td>工厂型号</td>
    <td>机种型号</td>
    <td>去向地</td>
    <td>软件版本号</td>
    <td>更新时间</td>


    </tr>
    <%  
    String CONDITIONS = request.getParameter("CONDITIONS");
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();    
      String url="jdbc:oracle:thin:@172.30.216.33:1521:MFAT";
      String user="MCM";
      String password="JAVA";
      Connection conn = DriverManager.getConnection(url,user,password);
      Statement stmt = conn.createStatement();
      
      String sql = "SELECT * FROM FT_C_TYPE WHERE GC_TYPE = '" + CONDITIONS + "'"; 
      String hql = "SELECT * FROM FT_C_TYPE WHERE UPDATETIME = (SELECT MAX(UPDATETIME) FROM FT_C_TYPE WHERE GC_TYPE = '" + CONDITIONS + "')";
    System.out.println(hql);
    out.println(hql);
    ResultSet rs = stmt.executeQuery(hql);while(rs.next()){%>   <tr>
    <td><%=rs.getString(1)%></td>
    <td><%=rs.getString(2)%></td>
    <td><%=rs.getString(3)%></td>
    <td><%=rs.getString(4)%></td>
    <td><%=rs.getString(5)%></td>


    </tr>
    <%} 
    %>
    </table>
    <%rs.close();stmt.close();conn.close(); %>

    </form> 
    </center>  
    </body>  
    </html>  
      

  16.   

    首先确认 rs.next() 该返回值为 true 然后SQL这样写
    String sql = "SELECT * FROM FT_C_TYPE WHERE UPDATETIME = (SELECT MAX(UPDATETIME) FROM FT_C_TYPE WHERE GC_TYPE = " + CONDITIONS + ")";