发布者: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,内容如下:
<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();
%>
