|
A webpage able to execute querys and updates to an internal database is always usefull....
Listing 1: isql.jsp
<HTML>
<HEAD>
<TITLE>_ISQL</TITLE>
<STYLE>
body {
font-family: Verdana, Arial;
background: #eee
}
h1 {
color: #444444;
background: #cdc
}
h2 {
color: #888888;
background: #eef
}
td {
background: #ffffff
}
th {
background: #e0e0f0
}
.resultTable {
border-width: 1px;
border-style: solid;
border-color: #208080;
font-size: x-small
}
</STYLE>
</HEAD>
<BODY>
<jsp:useBean id="recent" class="java.util.Vector" scope="session"/>
<%
String sql = request.getParameter("sql");
if (sql==null)
sql="";
%>
<H1>ISQL (<%=request.getServerName()%>) </H1>
<FORM METHOD="GET" ACTION="ou812.jsp">
<TABLE border="0" class="resultTable">
<TBODY>
<TR>
<TD>SQL</TD>
<TD><textarea rows="6" cols="60" name="sql"><%=sql%></textarea></TD>
</TR>
<TR>
<TD></TD>
<TD><INPUT type="submit" name="Enviar"></TD>
</TR>
<TR>
<TD>Recent</TD>
<TD><SELECT name="recentList" onChange="sql.value=recentList.value;">
<OPTION value="">(Recent)</OPTION>
<%for (int i =0; i< recent.size();i++) {%>
<OPTION value="<%=recent.elementAt(i)%>"><%=recent.elementAt(i)%></OPTION><%}%>
</SELECT></TD>
</TR>
</TBODY>
</TABLE>
</FORM>
<%
if ((sql!=null)&&(!"".equals(sql.trim()))) {
//javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
//javax.sql.DataSource dataSource = (javax.sql.DataSource)initialContext.lookup(jndi);
//java.sql.Connection conn = dataSource.getConnection();
Class.forName(application.getInitParameter("dbdrv"));
java.sql.Connection conn = java.sql.DriverManager.getConnection(
application.getInitParameter("dburl"),
application.getInitParameter("dbusr"),
application.getInitParameter("dbpwd"));
long t1 = System.currentTimeMillis();
java.sql.Statement st = conn.createStatement();
int filas = 0;
java.sql.ResultSet rs =null;
if (sql.toLowerCase().trim().startsWith("select")) {
rs = st.executeQuery(sql);
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
%>
<H2>Resultado</H2>
<table border="0" class="resultTable">
<tr>
<%for (int i=1; i<=rsmd.getColumnCount();i++){%>
<th><%=rsmd.getColumnName(i)%><br/>
<%=rsmd.getColumnTypeName(i)%></th> <%}%>
</tr>
<%while (rs.next()){ filas++; %>
<tr>
<%for (int i=1; i<=rsmd.getColumnCount();i++){%>
<td><%=rs.getObject(i)%></td><%}%>
</tr>
<%}
rs.close();
}else{
filas= st.executeUpdate(sql);
}
if (!recent.contains(sql))
recent.add(sql);
st.close();
long t2 = System.currentTimeMillis();
conn.close();
%>
</table>
<p><i><%=filas%> filas en <%=(t2-t1)%>ms</i></p>
<%}// (sql!=null)%>
<hr>
<address>_isql.jsp, Carlos Silva A. 2005.</address>
</BODY>
</HTML>
|