下面介紹如何用SQL Server實現一個動態FAQ(常見問題及答案)網站。
首先建立一個資料庫faq,其中的表faqs有欄位id(int,自動增量,並設為主關鍵字)、subject(varchar,200)、answers(text)。這個表中可以存放一些編程知識的常見問題及答案。然後,在Control Panel(控制台)的ODBC Datasource模組中加入System DSN,取名faq,並指向faq資料庫。建立一個JavaBean,名為faq.java,並儲存在C:\JBuilder4\tomcat\webapps\test目錄下。
faq.java 的內容如下:
package test;
import java.sql.*;
public class faq {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:faq";
Connection conn = null;
ResultSet rs = null;
public faq() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("faq(): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}
}
用上一節介紹的方法編譯faq.java以後,在jC:\JBuilder4\tomcat\webapps\test目錄下建立JSP檔案faq.jsp,其內容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>我的FAQ !</title>
</head>
<body>
<p><b>這是我的FAQ!</b></p>
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="workM" scope="page" class="test.faq" />
<%
ResultSet RS = workM.executeQuery("SELECT * FROM faqs");
String tt;
while (RS.next()) {
tt = RS.getString("Answer");
out.print("<LI>" + RS.getString("Subject") + "</LI>");
out.print("<pre>" + tt + "</pre>");
}
RS.close();
%>
在瀏覽器的地址欄中鍵入http://localhost:8080/test/faq.jsp,faq.jsp調用JavaBean,從資料庫中讀出內容並輸出,得到結果5所示.