[]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.
