(Web开发技术)第8章Web应用数据库接口.ppt

第8章 Web应用数据库接口 8.1 数据库访问接口   根据图7.1所示的Web服务器端编程模型可知,Web应用系统的数据主要存储在数据库系统中,通过数据库访问接口进行访问。数据库系统的管理和维护由数据库系统管理员(DBA)来进行,数据的安全性得到了保证。常用的各种关系型数据库系统有SQL Server、MySQL、Oracle、DB2等。当客户系统与数据库系统建立通信连接后,就可以采用标准SQL语句访问数据库了。各厂家都实现了自己的数据库系统驱动程序,可完成与客户系统通信、SQL命令的解释和执行等功能,这样的数据库驱动程序称为一级数据库驱动程序(底层驱动程序)。   实际应用中,为了适应数据库系统变更后程序移植的简单性,Sun公司开发了高层数据库访问接口——JDBC(Java Database Connectivity),此接口对不同的数据库系统进行了高层抽象和封装,提供一个统一的访问数据库接口,开发人员可以使用此接口在更高层次访问各种类型的数据库系统。开发人员通过类库来使用此接口,类库共包含java.sql、javax.sql两个包,在程序源代码中使用import指令导入类库。使用JDBC API访问各种类型的数据库系统图如图8.1所示。 图8.1 使用JDBC API访问各种类型的数据库系统图 8.2 JDBC API主要接口和类   JDBC API提供了建立数据库连接、释放数据库连接、发送SQL命令语句、接收SQL执行结果集等功能的接口和类。最常使用的接口和类是Driver接口、DriverManager类、Connection接口、Statement接口、PreparedStatement 接口、CallableStatement接口、ResultSet 接口。   下面逐一介绍这些接口和类的使用方法。   (1) ?Driver接口。每一个具体的Driver类必须实现该Driver接口。每一个驱动程序应该提供一个实现该接口的类。   (2) ?DriverManager类。DriverManager类会试着装载它能够发现的多个驱动程序。对于给定的连接请求,DriverManager类会轮流请求每个驱动程序去试着连接目标URL指定的数据库系统。每个实现Driver接口的Driver类代码应该简短、独立,这样可使Driver类能够在不带有大量的支持代码的情况下被装载和查询。这是实现该接口的驱动程序时需要注意的地方。   当一个驱动类被装载时,它会创建一个自己的实例,并在DriverManager中注册。开发人员通过使用Class.forName(foo.bah.Driver); 这样的调用语句来实现装载和注册一个驱动。forName方法的参数为驱动程序类的字符串。   装载和注册JDBC-ODBC Bridge驱动程序的语句是:   Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);   装载和注册JDBC Driver驱动程序的语句是:   Class.forName(“jdbc.driver_class_name”);   例如:   import java.sql.*;    //load MS SQL Server Driver    Class.forName(“com.microsoft.jdbc.sqlserver.      SQLServerDriver”);    //load MySQL JDBC Driver   Class.forName(org.gjt.mm.mysql.Driver);    //load Oracle JDBC Driver    Class.forName(“oracle.jdbc.driver.OracleDriver”);   DirverManager类提供了一个管理JDBC驱动程序集的基本的服务类。 在JDBC 2.0 API中,通过DataSource 接口提供了连接数据源的另外一种方法。使用DataSource对象是连接一个数据源的更好的方式。   作为数据源初始化的一部分,DirverManager类会尝试装载在“jdbc.drivers”系统属性中提到的驱动类。利用这种方式,允许用户通过应用程序定制多个JDBC驱动。应用程序可以在任何时候通过Class.forName(String strDriverClassName)语句显式地装载多个JDBC驱动程序。   当DirverManager的getConnection()方法被调用时,DirverManager会从那些开始就装载的和使用相同的类装载器显式装载的驱动中尝试着本地化一个合适的驱动作为当前

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档