[]s

bom fim de semana,

se Algu�m  rodar este exerc�cio na web, por favor, me passa o endere�o.

oi Pessoal,

 

/** Program name: DynamicQueryBean.java
 ** Purpose:      Execute a dynamic JDBC query on the purchase order database
 **/
package mybeans;
import java.sql.*;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class DynamicQueryBean implements HttpSessionBindingListener  {
  private String query = "";
  private String result = null;
  public void DynamicQueryBean() {
  } 
  public synchronized void setQuery(String newQuery) {
      result = null;
      query = newQuery;
  }
  // Main method to return the query result
  public String getResult() throws SQLException {
    if (result != null) return result;
    else return (runQuery());
  }
  private Connection conn = null;
  private synchronized String runQuery() {
    try {
      if (conn == null) {
        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        conn = DriverManager.getConnection("jdbc:oracle:oci8:@",
                                           "jspuser", "jsp");
      }
      Statement stmt = conn.createStatement();
      ResultSet rset = stmt.executeQuery (query);
      result = formatResult(rset);
      if (rset!= null) rset.close();
      if (stmt!= null) stmt.close();
      return result;
    } catch (SQLException e) {
      return ("<P> SQL error for query: <PRE> " +
             query + "<BR>" + e + " </PRE> </P>\n");
    }
  }  
  private String formatResult(ResultSet rs) throws SQLException {
    StringBuffer sb = new StringBuffer();
    if (rs == null || !rs.next()) {
      sb.append("<P> No matching rows found.<P>\n");
      return sb.toString();
    }
    sb.append("<TABLE BORDER>\n");
    ResultSetMetaData md = rs.getMetaData();
    int numCols = md.getColumnCount();
    for (int i=1; i<= numCols; i++) {
      sb.append("<TH><I>" + md.getColumnLabel(i) + "</I></TH>");
    }
    do {
      sb.append("<TR>\n");
      for (int i = 1; i <= numCols; i++) {
     sb.append("<TD>");
      Object obj = rs.getObject(i);
     if (obj != null)  sb.append(obj.toString());
          sb.append("</TD>");
      }
      sb.append("</TR>");
    } while (rs.next());
    sb.append("</TABLE>");
    return sb.toString();
  }
  // Method executed when session starts
  public void valueBound(HttpSessionBindingEvent event) {
    // nothing to be done here. Bean will create connection only when
    // a query is submitted.
  }
  // Method executed when session exits
  public synchronized void valueUnbound(HttpSessionBindingEvent event) {
    try {
      if (conn != null) conn.close();
    }  catch (SQLException e)  {  }
  }
}

 

 

<%-- Program name: AnyQuery.jsp
  -- Purpose:      Accept and execute any user query on the purchase order
  --               database, displaying the results as an HTML table.
  --%>     
<jsp:useBean id="aQueryBean" class="mybeans.DynamicQueryBean"
                             scope="session" />
<jsp:setProperty name="aQueryBean" property="*" />

<HTML>
<HEAD> <TITLE> The AnyQuery JSP  </TITLE> </HEAD>
<BODY BGCOLOR="white">

<%  String query = request.getParameter("query");
    if (query != null) { %>
      <H3>Result of your query:  </H3>
      <CENTER><B>
      <%=  aQueryBean.getResult() %>
      </CENTER><B><BR>
      <HR>
<%  }  %>

<H4> Hello! Here you can execute any query on the Order database. </H4>  
<H4>Please enter your query below:</H4>

<FORM METHOD=post>
<TEXTAREA NAME="query" rows="10" cols="50">
<% if (query != null ) { %>
   <%= query %>
<% } else { %>
  SELECT firstname || ' ' || lastname AS "Name",
         employeeno AS "Employee #",
         deptno AS "Depart #"
    FROM EMPLOYEE_LIST
     WHERE lastname LIKE 'M%'
       ORDER BY lastname
  <% } %>
</TEXTAREA>
<INPUT TYPE="submit" VALUE="Submit Query">
</FORM>
</BODY>
</HTML>



Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espa�o, antiv�rus, acesso POP3, filtro contra spam.

Responder a