JDBC 示例(轉(zhuǎn))
發(fā)表時(shí)間:2024-06-19 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]發(fā)布者:flyfox 數(shù)據(jù)庫(kù)連接對(duì)動(dòng)態(tài)網(wǎng)站來(lái)說(shuō)是最為重要的部分,Java中連接數(shù)據(jù)庫(kù)的技術(shù)是JDBC(Java Database Connectivity)。很多數(shù)據(jù)庫(kù)系統(tǒng)帶有JDBC驅(qū)動(dòng)程序,Java程序就通過(guò)JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢(xún),提取數(shù)據(jù)等等。Sun公司還開(kāi)發(fā)了JDBC-OD...
發(fā)布者:flyfox
數(shù)據(jù)庫(kù)連接對(duì)動(dòng)態(tài)網(wǎng)站來(lái)說(shuō)是最為重要的部分,Java中連接數(shù)據(jù)庫(kù)的技術(shù)是JDBC(Java Database Connectivity)。很多數(shù)據(jù)庫(kù)系統(tǒng)帶有JDBC驅(qū)動(dòng)程序,Java程序就通過(guò)JDBC驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行查詢(xún),提取數(shù)據(jù)等等。Sun公司還開(kāi)發(fā)了JDBC-ODBC bridge,用此技術(shù),Java程序就可以訪(fǎng)問(wèn)帶有ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù),目前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有ODBC驅(qū)動(dòng)程序,所以Java程序能訪(fǎng)問(wèn)諸如Oracle、Sybase、MS SQL Server和MS Access等。 下面介紹如何用Access實(shí)現(xiàn)一個(gè)動(dòng)態(tài)FAQ(常見(jiàn)問(wèn)題及答案) 網(wǎng)站。
首先建立一個(gè)Access數(shù)據(jù)庫(kù)(faq.mdb),其中設(shè)計(jì)表(Table) faqs,有字段id(自動(dòng)增量型,并設(shè)為主關(guān)鍵字), subject(文字型,長(zhǎng)度200), answers(備注型)。這個(gè)表中可以存放一些編程知識(shí)的常見(jiàn)問(wèn)題及答案。見(jiàn)圖4。
然后,在Control Panel(控制面板)的ODBC Datasource模塊中,加入System DSN,取名faq,并指向faq.mdb。
創(chuàng)建一個(gè)JavaBean,faq.java,并保存在\jswdk-1.0.1\webpages\WEB-INF\jsp\beans\test目錄下。faq.java 的內(nèi)容如下:
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;
}
}
用上一節(jié)介紹的方法編譯faq.java以后,在 \jswdk-1.0.1\webpages\test 目錄下創(chuàng)建JSP文件faq.jsp,內(nèi)容如下:
<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();
%>