转自百度文库:
a.jsp页面重要代码:
<body bgcolor=pink><h1>
数据库查询
</h1>
<inquire:GetRecord dataSource="star1" tableName="employee"></inquire:GetRecord>
在<%=biao%>表查询到的记录如下:
<p></p><%=queryResult%><%--biao和queryResult是Tag文件返回的对象--%>
</body>
GetRecord.tag重要代码:
<%@ tag pageEncoding="gbk"%>
<%@ tag import="java.sql.*"%>
<%@ tag import="java.util.*"%>
<%@ attribute name="dataSource" required="true"%><%--从a.jsp页面得到参数dataSource --%>
<%@ attribute name="tableName" required="true"%><%--从a.jsp页面得到参数tableName --%>
<%@ variable name-given="biao" scope="AT_END"%><%--向a.jsp页面返回对象biao --%>
<%@ variable name-given="queryResult" scope="AT_END"%><%--向a.jsp页面返回对象queryResult --%>
<%
StringBuffer result = new StringBuffer();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDrier");//建立桥接器
} catch (Exception e) {
}
Connection con;
Statement sql;
try {
result.append("<table border=1>");
con = DriverManager.getConnection("jdbc:odbc:" + dataSource,
"", "");//和数据库建立连接,注:第一个参数代表数据源名,第二个参数代表用户名,第三个参数代表密码
DatabaseMetaData metadata = con.getMetaData();
ResultSet rs1 = metadata
.getColumns(null, null, tableName, null);//表的字段信息以行列的形式存储在ResultSet对象中,注:第一个参数代表数据库名,第二个代表数据库扩展名,第三个代表表名,最后一个代表字段名
int 字段个数 = 0;
result.append("<tr>");
while (rs1.next()) {//rs1对象调用next方法使游标向下移动一行
字段个数++;
String clumnName = rs1.getString(4);//rs1调用getString方法查看该行中列的信息,其中最重要的信息是第4列,该列上的信息为字段的名字
result.append("<td>" + clumnName + "</td>");
}
result.append("</tr>");
sql = con.createStatement();
ResultSet rs = sql.executeQuery("select * from " + tableName);//将查询结果返回给内存的结果集对象rs
while (rs.next()) {
result.append("<tr>");
for (int k = 1; k <= 字段个数; k++) {
result.append("<td>" + rs.getString(k) + "</td>");
}
result.append("</tr>");
}
result.append("</table>");
con.close();//关闭数据库连接
} catch (Exception e) {//抛出异常
out.print(e);
}
jspContext.setAttribute("queryResult", new String(result));//返回queryResult对象给a.jsp页面
jspContext.setAttribute("biao", tableName);//返回biao对象给a.jsp页面
%>