您的位置:寻梦网首页编程乐园Java天地JSP 专辑JSP001 HTML 离线版
Java 天地
JSP001 HTML 离线版
论坛精华 >> JDBC >> 在JSP中用 JavaBeans、JDBC-ODBC 访问数据库

由 webmaster 发布于: 2001-02-21 09:15


山东省出版总社信息中心 林华(linhua123@sina.com)

--------------------------------------------------------------------------------

---- JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与建立的一种动态网页技术标准。使用JSP技术,Web页面开发人员可以使用Html或者XML标识来设计和格式化最终页面。使用JSP标识(tag)或者小脚本(Scriptlet)来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。

----JavaBeans是一种基于Java的软件组件,JavaBeans和 ActiveX控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。JSP对于在 Web应用中集成JavaBeans组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为JSP应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务、或负责与数据库的交互以及数据提取等,本文将通过一个实例介绍在JSP中利用JavaBeans通过JDBC-ODBC Bridge访问客户信息数据库。

----数据库连接对动态网站来说是最为重要的部分,Java中连接数据库的技术是JDBC(Java Database Connectivity)。很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等操作。Sun 公司还开发了JDBC-ODBC bridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、 Sybase、MS SQL Server和MS Access等数据库。下面介绍如何用Access实现一个客户信息查询程序。

首先建立一个Access数据库Customers.mdb,其中的表Customers有字段id(自动增量型,并设为主关键字)、name(文本型,长度10)、address(文本型,长度30)、 info(备注型)。
在Control Panel(控制面板)的ODBC Datasource模块中加入System DSN,取名 Customers,并指向Customers.mdb。
创建一个JavaBean,名为DBconn.java,并保存在支持JSP的Web服务器的缺省文档根目录下。DBconn.java主要是封装与数据库的连接操作,内容如下:
import java.sql.*;
public class DBconn {
StringDBDriver = “sun.jdbc.odbc.JdbcOdbcDriver";
String ConnStr = “jdbc:odbc:Customers";
Connection conn = null;
ResultSet rs = null;
public DBconn {
try {
Class.forName(DBDriver);  
//加载数据库驱动程序
}
catch(java.lang.ClassNotFoundException e) {
System.err.println(“DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(ConnStr);
//与DBMS建立链接
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(“aq.executeQuery:"+ex.getMessage());
}
return rs;
}
}

DBconn.java编辑好后,在DOS状态下,利用JDK的javac命令编译 DBconn.java形成相应的class文件。
建立Customers.jsp文件,在JSP中调用以上编译好的JavaBeans,其内容如下:
< html >
  < head >
< meta http-equiv=“Content-Type" content=
“text/html; charset=gb2312" >
  < title >客户信息调查< /title >
  < /head >
  < body >
  < p >< b >客户信息调查< /b >< /p >
  < %@ page language=“java" import=“java.sql.*" % >
< jsp:useBean id=“DBconn1" scope=
“page" class=“DBconn" / >
  < %
ResultSet RS = DBconn1.executeQuery
(“SELECT * FROM Customers");
  while (RS.next()) {
out.print(“< LI >" + RS.getString(“name")
+ “< /LI >");
out.print(“< LI >" + RS.getString(“address")
+“< /LI >");
out.print(“< LI >" + RS.getString(“info")
+ “< /LI >");
  }
  RS.close();
  % >
  < /body >
  < /html >

----在 < jsp:useBean > 标记内定义了几个属性,其中id是整个JSP页面内该Bean的标识, scope属性定义了该Bean的生存时间, class属性说明了该Bean的类文件。

----事实证明,JSP是一种开发Web应用的理想构架,利用跨平台运行的JavaBeans组件,JSP为分离处理逻辑及显示样式提供了卓越的解决方案。



资料来源: JSP001.com