在JSP中访问MS SQL Server数据库

  下面介绍如何用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所示.