基于JSP技术的数据库连接
2008-02-23 07:53:37来源:互联网 阅读 ()
Web数据库连接技术
常见的Web数据库连接技术有:CGI技术、WebAPI技术、RAD技术和JDBC技术等。最早出现的CGI技术得到了几乎所有的Web服务器的支持,但是存在着严重的缺陷,例如运行速度慢、开发困难和可移植性差等。WebAPI的出现克服了速度问题,但是开发更加困难。各种不同的API互不兼容,使用范围极其受限。RAD技术(快速开发技术)从根本上该改变了开发困难的现状,但是它和特定的Web服务器的依赖性很强,缺乏通用性。
JDBC(Java Database Connectivity)技术的最大优势是它为所有数据库管理系统提供一种标准接口,可以为多种关系数据库提供统一访问,大致可以分为以下三个部分:
◆ JDBC API的主要特点之一是简单且容易掌握。它主要由接口组成而不是集成类,被包含在java.sql和javax.sql两个包中。这些接口由提供JDBC驱动的软件商来完成。
◆ JDBC驱动管理器的作用是在JDBC运行结构上,提供最基础的指引功能,即当一个JDBC API程序进行数据库调用时,它会选择一个正确的JDBC驱动程序进行连接。
◆ JDBC驱动的作用是当JDBC API制作的程序进行数据调用时,实际连接数据库并进行相应的处理。JDBC驱动提供JDBC API的接口类。
JSP技术
JSP技术的特点
Java Server Page(JSP)是使用Java代码动态生成HTML文档的Web页面摸板。JSP运行于服务器端组件,称为JSP容器,它将JSP转化成等价的Java Servlet。正因为如此,Servlet和JSP页面最终是相关的。JSP页面具有了Servlet的所有优点,如良好的性能和扩展性,对HTTP会话提供嵌入式支持等。同时JSP页面还具有自身的优点,如需要时自动重新编译和与Web开发工具具有更大的兼容性。
JSP容器基于每个文件的时间戳自动管理JSP页面。当对一个JSP页面的请求发出后,容器首先判断与.JSP文件对应的类的名字。
如果该类不存在或比.JSP文件的老,然后容器为一个等价的Servlet创建Java源码并编译它。如果Servlet实例并未运行,容器载入该Servlet类并创建一个实例。最后,容器发送一个线程在载入的实例中处理当前的HTTP请求。所以,一个JSP页面有三种存在形式,即JSP源码、Java源码和已编译的Java类。
JSP元素可以分为三种:伪指令、脚本元素(包含表达式、Script和声明)和动作。其中,伪指令是指示JSP容器生成什么代码的命令;在表达式和Script中可以使用9个隐含对象;行为是创建、修改或使用对象的高层JSP元素,使用严格的XML语法编码。
利用JSP实现Web与数据库的连接
Java使用JDBC技术处理数据库是一种综合、通用方式,实现与数据库的连接,执行查询和提取数据等操作。很多关系数据库管理系统都带有JDBC驱动程序。具体步骤如下:
1.完成环境设置,导入java.sql包,命令如下:
#import java.sql.*
2.载入驱动器
JDBC规范依据驱动器结构将驱动器划分为JDBC-ODBC桥、纯Java到数据库中间件和纯Java直接到数据库几种类型。在此,采用本地API与部分Java类型驱动器,显式创建一个如下的驱动器实例并用驱动器管理器注册:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
3.连接到数据库
驱动器管理器保留已注册驱动器列表,调用其getConnection()方法得到Connection对象。其中getConnection()的参数分别是数据库服务器的IP地址、端口号、库名和登录数据库所需的账号与密码,示例如下:
Connection conn= DirverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:demo","username","password");
4.语句接口
SQL语言由从一个关系数据库中创建、表示和抽取数据的语句组成。JDBC提供的这些SQL语句的面向对象的表示用以封装其文本、执行状态和结果。这种表示称为java.sql.Statement接口。使用预编译SQL的PreparedStatement和调用存储过程的CallableStatement这两个子接口扩展了Statement的功能,示例如下:
Statement stmt=conn.createStatement();
5.获得结果集
一个结果集是表格行的排序列表,使用JDBC中的java.sql.ResultSet接口表示。结果集由Statement接口的executeQuery()方法或一些元数据方法调用产生,示例如下:
ResultSet rs=stmt.executeQuery(sql);
利用连接池优化访问效率
在本实例中,应用层使用WebLogic 6.1,数据库层采用Oracle8.1.6,客户端使用Navigate浏览器。
实例
在本实例中建立一个命名为ConnectionPool的连接池。ConnectionPool的基本属性如下:
m_ConnectionPoolSize 连接池中连接数量下限;
m_ConnectionPoolMax 连接池中连接数量上限;
m_ConnectionUseCount 一个连接的最大使用次数;
m_ConnectionTimeout 一个连接的最长空闲时间;
m_MaxConnections = -1 同一时间的最大连接数;
m_timer 定时器。
这些属性定义了连接池与其中的每个连接的有效状态值。
连接池的自我管理,实际上就是通过定时地对每个连接的状态和连接的数量进行判断而进行相应操作。
这里可以定义出ConnectionPool要完成管理所需要的基本接口,具体见下:
public class ConnectionPool implements TimerListener{
public boolean initialize() //连接池初始化
public void destroy() //连接池的销毁
public synchronized java.sql.Connection getConnection() //取一个连接
public synchronized void close() //关闭一个连接
private synchronized void removeFromPool() //把一个连接从连接池中删除
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash