發布者:flyfox
數據庫連接對動態網站來說是最為重要的部分,Java中連接數據庫的技術是JDBC(Java Database Connectivity)。很多數據庫系統帶有JDBC驅動程序,Java程序就通過JDBC驅動程序與數據庫相連,執行查詢,提取數據等等。Sun公司還開發了JDBC-ODBC bridge,用此技術,Java程序就可以訪問帶有ODBC驅動程序的數據庫,目前大多數數據庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MS SQL Server和MS Access等。 下面介紹如何用Access實現一個動態FAQ(常見問題及答案) 網站。
首先建立一個Access數據庫(faq.mdb),其中設計表(Table) faqs,有字段id(自動增量型,並設為主關鍵字), subject(文字型,長度200), answers(備注型)。這個表中可以存放一些編程知識的常見問題及答案。見圖4。
然後,在Control Panel(控制面板)的ODBC Datasource模塊中,加入System DSN,取名faq,並指向faq.mdb。
創建一個JavaBean,faq.java,並保存在\JSwdk-1.0.1\webpages\WEB-INF\JSP\beans\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以後,在 \jswdk-1.0.1\webpages\test 目錄下創建JSP文件faq.JSP,內容如下:
這是我的FAQ!
<%@ page language="java" import="Java.sql.*" %>
<%
ResultSet RS = workM.executeQuery("SELECT * FROM faqs");
String tt;
while (RS.next()) {
tt = RS.getString("Answer");
out.print("
out.print("
" + tt + "");
}
RS.close();
%>