arronliao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  实训的时候用到了数据库的存储进程。这里记录下吧,把自己的经历慢慢写下来也是一件不错的事。

  首先是连接数据库的类ConnDB.java中操作存储进程的函数

  /**

  * @Param procedure name

  *@return theResultSet(一般是不建议返回ResultSet的,实训追求方便就直接弄了....)
  */
  public ResultSet exeSqlQueryProc(String proc) {
    try {
      cStatement=dbConn.prepareCall("CALL "+proc +";",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      resultSet=cStatement.executeQuery();
    } catch (Exception ex) {
      //打印出异常信息
      System.err.println("DAO.DBBean.executeQuery() ERR :"+ex.getMessage());
      resultSet = null;
    }
  return resultSet;
  }

  然后是处理站点-线路的类LineToStation.java类的处理(继承自ConnDB.java)

  public ResultSet directStation(String startStation,String endStation ){
    proc="dirStation('"+startStation+"','"+endStation+"')";
    ResultSet resultSet = null;
    try {
      resultSet = super.exeSqlQueryProc(proc);
    } catch (Exception ex) {
      System.out.println(ex.toString());
    } finally {

      if (rs != null) { rs.close(); }

      if (stmt != null) {stmt.close(); }

      if (dbcon != null) { dbcon.close(); }
    }
    return resultSet;
  }

  最后是JSP页面中进行使用

  ...

  <%

  String start = request.getParameter("stationName1");
  String end = request.getParameter("stationName2");
  ResultSet resultSet1 = lts.directStation(start,end);//注:lts是引用的JavaBean名字

  if (resultSet1.next()) {
    out.println("<center>直达</center>");
    out.println("<thead><tr>");
    out.println("<th style='padding:5px;' align='center'>起始站点</th>");
    out.println("<th style='padding:5px;' align='center'>目的站点</th>");
    out.println("<th style='padding:5px;' align='center'>乘坐线路</th>");
    out.println("</tr></thead>");
    resultSet1.previous();
    while (resultSet1.next()) {
      // String busline = resultSet.getString(1);
  %>
  <tr>
  <td style="padding:5px;" align="center"><%=resultSet1.getString(1)%></td>
  <td style="padding:5px;" align="center"><%=resultSet1.getString(2)%></td>
  <td style="padding:5px;" align="center"><%=resultSet1.getString(3)%></td>
  </tr>
  <% }
  }

  %>

 

 

  ...  

  到此就完毕了。。。

posted on 2012-06-11 10:06  arronliao  阅读(194)  评论(0编辑  收藏  举报