欢迎来到天天文库
浏览记录
ID:38872663
大小:9.17 MB
页数:68页
时间:2019-06-20
《《JSP程序设计》教学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章JDBC简介数据库是数据管理最重要的途径之一,也是Web应用最重要的数据源。在早期,对数据库的访问都是使用数据库厂商提供的专用API(applicationprogramminginterface,应用程序编程接口)进行的。Java语言发布后,为了支持数据库的访问操作,Sun公司于1996年推出了JDBC(Javadatabaseconnectivity,Java数据库连接)。JDBC定义了一套访问关系数据库的标准Java类库。通过JDBCAPI,用户可以方便地操作关系数据库。此外,JDBC还为数据库厂商提供了一个标准的体系架构
2、,厂商能够针对数据库产品提供特定的JDBC驱动程序,从而提高了Java访问数据库的效率。本章逐一介绍了JDBCAPI主要的接口功能和使用方式,并给出了相应的示例程序。最后利用JDBCAPI实现了一个简单的学生管理系统,其中包括学生信息的增加、查看、修改和删除等功能。4.1SQL语言与JDBCSQL(structuredquerylanguage,结构化查询语言)语言是于1974年由Boyce和Chamberlin提出,并在1979年由IBM公司在其研制的关系型数据库SystemR中实现的。由于SQL语言功能丰富、语法简洁,因此深受用户
3、的喜爱。1986年10月,美国国家标准局批准SQL语言作为关系型数据库的标准语言。SQL语言是一种介于关系代数和关系演算之间的结构化查询语言,但SQL语言不仅仅局限于查询,它是一个通用的、功能强大的关系型数据库语言。在基于Java的应用程序开发过程中,为了降低程序开发的复杂度,提高程序开发效率,通常使用JDBC和SQL相互配合,共同完成访问关系型数据库的工作。JDBC负责将SQL语句传递给数据库,然后从数据库中获取返回结果,并组装为结果集返回给客户,其运行方式如下图所示。4.2JDBCAPIJDBCAPI是Java平台提供的一个标准的
4、数据库访问接口集,是支持数据库操作的类与方法的集合,利用它开发人员在编写应用程序时不必考虑所用的数据库。JDBCAPI包括java.sql和javax.sql两个包。java.sql包包含了JDBC的核心API;而javax.sql包则包含了JDBC标准的扩展API。JDBCAPI提供了以下基本功能:(1)建立与数据源的连接。(2)向数据源发送查询和更新语句。(3)处理从数据源得到的结果。实现上述功能的JDBCAPI的核心类和接口均定义在java.sql包中。熟练掌握这些类和接口的使用方法,是JDBC程序设计的基础,也是构建更复杂、更
5、高级的应用程序的必要条件。4.2.1管理驱动程序类DriverManagerDriverManager类是JDBC的管理层,作用于用户和数据库驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登录时间限制,以及登录和跟踪消息的显示等事务。DriverManager类中常用的方法如下表所示。4.2.2数据库连接类ConnectionConnection对象代表与数据源进行的唯一对话。Connection类提供了进行事务处理、创建执行SQL语句和创建存储过程所用对
6、象的方法。同时,Connection类还提供了一些基本的错误处理方法。Connection类的实例可以通过DriverManager.getConnection()或DataSoure.getConnection()方法创建。java.sql.Connection类提供的常用方法如下表所示。4.2.3SQL声明类StatementStatement类用于将SQL语句发送到数据库中。实际上有三种Statement类:Statement、PreparedStatement和CallableStatement,它们都专用于发送特定类型的SQ
7、L语句。其中,Statement用于执行不带参数的简单SQL语句。Statement对象用Connection的createStatement方法创建,具体格式如下:Statementstmt=conn.createStatement();4.2.4PreparedStatement类由上一节可知,Statement类使用SQL语句直接处理查询。在执行过程中,Statement类把SQL语句提交给数据库,数据库分析执行SQL语句,然后将执行结果返回给用户。值得注意的是,使用Statement类,即使重复执行同一查询,SQL语句也要由数
8、据库再次格式化;尤其是当SQL语句中包含where子句时,每一次查询都需要数据库解析、优化,然后才能返回执行结果。因此,使用Statement类将会在很大程度上影响重复数据查询的执行效率。为了提高查询效率,对于同一个查询
此文档下载收益归作者所有