牛骨文教育服务平台(让学习变的简单)
博文笔记

使用JSP和JavaBean存取数据库

创建时间:2007-10-29 投稿人: 浏览次数:5045
JSP程序往往要与数据库打交道。JSP与数据库的连接通常通过JavaBean来实现。要注意的是,以前存取数据库的程序往往在一、两个方法中实现了所有的操作,而JSP对应的JavaBean往往包含很多方法,每个方法完成一个较小的功能,以便在JSP程序中调用。 例:设数据库(类型不限,可以是Oracle, SQL Server等)中有一个用户名、口令和电话号码的对照表psyref: psyref

字段名 类型 描述
name varchar(20) 用户名
password varchar(20) 用户口令
phone varchar(8) 用户的电话号码
设程序使用类型1的driver来存取数据库,并假设数据库对应的ODBC driver的DSN名为myodbc,数据库的用户名和口令均为dbuser,下例采用JSP和JavaBean从表中取得用户名和电话号码显示在网页上。 13.6: 使用JSPBean存取数据库的实例 Bean程序: AddrBook.java package test;   import java.sql.*;   public class AddrBook {      Connection conn;    Statement stmt;    ResultSet rs ;      public void init(String dburl,String db_user,String db_passwd) {        try {        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      conn = DriverManager.getConnection(dburl,db_user,db_passwd);      } catch(java.lang.ClassNotFoundException e) {        System.err.println("Load Driver Error: " + e.getMessage());      } catch(SQLException ex) {        System.err.println("Get Connection Error: " + ex.getMessage());    }    }      public ResultSet executeQuery(String sql) {      try {        stmt = conn.createStatement();        rs = stmt.executeQuery(sql);      } catch(SQLException ex) {        System.err.println("SQL Error: " + ex.getMessage());    }        return rs;      }      public void close() throws SQLException {            stmt.close();      conn.close();      } }   编译AddrBook.java以后,在/webpages/目录下创建JSP文件AddrBook.jsp,其内容如下: JSP程序: AddrBook.jsp <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title></title> </head> <body> <center>   <h2>Phone Number List:</h2>   <%@ page language="java" import="java.sql.*" %>   <jsp:useBean id="workM" scope="page" class="test.AddrBook" />   <% workM.init("jdbc:odbc:myodbc","dbuser","dbuser"); %>   <br><br> <table boder=2> <tr><th>name</th><th>phone</th></tr>   <% ResultSet RS = workM.executeQuery("SELECT name,phone FROM psyref"); while (RS.next()) { out.print("<tr><td>" + RS.getString("name") + "</td>"); out.print("<td>" + RS.getString("phone") + "</td></tr>"); } RS.close(); %>   </table> <% workM.close(); %> </center> </body> </html>   在浏览器的地址栏中键入http://localhost:8080/AddrBook.jsp,对应的JSP文件会调用JavaBean,从数据库中读出用户的名字和电话号码并将结果输出在网页上。  
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。