1、第21章 JDBC及其应用,什么是JDBC?它跟数据库有什么联系?它跟Java开发有什么联系?在现实的开发工作中,JDBC起着什么作用?带着这些疑问,开始本章的学习之旅。本章将会通过大量的实例,让读者能够很熟练的掌握JDBC。为了能够更清晰的理解其概念,本章还采取了大量的截图,让读者通过截图,清楚地看到实际的操作。同时希望读者能够一边学习、一边练习。,21.1 数据库基础知识,JDBC是连接数据库和Java应用程序的一个纽带,下面先介绍有关数据库的知识。 数据库在应用程序中占有相当重要的地位,几乎所有的系统都必须要有数据。数据库发展到现在已经相当成熟了,由原来的Sybase数据库,发展到现在的
2、SQL(Structured Query Language)、Oracal等高级数据库。,21.1.1 什么是数据库,数据库是依照某种数据模型组织起来,并存放二级存储器中的数据集合。这种数据集合具有如下特点: 尽可能不重复。 以最优方式为某个特定组织提供多种应用服务。 其数据结构独立于使用它的应用程序。 对数据的增删改和检索由统一软件进行管理和控制。 (具体内容请参照本书),21.1.2 数据库的分类及功能,数据库系统一般基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型等等。 (1)层次型数据库: (2)网状数据库: (3)关系数据库 (4)对象型数据库,21.1.3 关系数据库的
3、设计,1数据库设计过程 2需求分析阶段,21.1.4 数据库设计技巧,本节介绍一些数据库设计方面的技巧,主要包括4点,如下所示。 1 设计数据库之前(需求分析阶段) 2 表设计原则 3 键选择原则 4 索引使用原则,21.2 JDBC的概念,JDBC是一个有关数据库连接的工具。本节介绍JDBC的概念和如何使用JDBC将Java程序与数据库进行连接。,21.2.1 什么是JDBC,JDBC就是Java DataBase Connectivity,Java数据库连接。它主要完成下面几个任务。 与数据库建立一个连接。 向数据库发送SQL语句。 处理数据库返回的结果。 实用Java程序语言和JDBC工
4、具包开发程序,是独立于平台和厂商的。 JDBC就是将Java程序语言编写出来的程序,与数据库相连接。接下来,将详细讲述如何利用JDBC为程序连接数据库。,21.2.2 JDBC驱动程序的分类,JDBC被称为数据源驱动,其具备什么特点,又与ODBC有什么关系或区别呢? 1 JDBC和ODBC的区别 2 JDBC的结构和种类,21.2.3 JDBC的用处,JDBC的引入有其非常重要的作用: 程序员可以使用Java开发基于数据库的应用程序,在遵守Java语言规则的同时,可以使用标准的SQL语句访问任何数据库。 如果数据库厂商提供较低层的驱动程序,程序员可以在自己的软件中,使用比较优化的驱动程序。 (
5、具体内容请参照本书),21.3 SQL数据库技术,在很多情况下,遇到的数据库大部分都是SQL。那么SQL到底是什么呢?为什么在现实的开发中,它的使用频率如此之高?本节将详细地讲述SQL数据库。,21.3.1 什么是SQL数据库,SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。与其他语言(如Java、Visual Basic这样的程序设计语言)不一样,SQL由很少的词构成,这是有意而为的。SQL能够很好地完成一项任务提供一种从数据库中读写数据的简单有效的方法。SQL有如下的优点:(具
6、体内容请参照本书),21.3.2 如何操作SQL数据库,标准SQL只包含9种语句: 数据查询:select 数据定义:create,drop,delete 数据操纵:insert,update,delete 数据控制:grant,revoke 1 数据查询 2 数据操纵 3数据定义语言,21.3.3 安装SQL Sever 2005,本节介绍如何安装SQL Sever2005,具体步骤如下所示。(具体内容请参照本书),21.3.4 使用SQL创建数据库,无论是SQL Sever2005还是其他的版本,它们都是使用SQL语言,所以它们使用的基本点都是一样的。SQL语言的重要性,读者在以后的工作中
7、会体会到的。为了帮助读者尽快熟悉SQL语言的知识。下面将讲述如何通过SQL语句对数据库进行操作。(具体内容请参照本书),21.4 JDBC基本编程,本节将讲述如何进行JDBC的编程工作。相信读者通过大量的实例,一定会掌握如何连接到数据库、如何去操作数据库等等。,21.4.1 如何建立数据库,如何建立数据库呢?建立数据库总共有几个步骤:设定数据源、建立数据库的URL、建立会话,接下来将详细讲述。 1 设定ODBC数据源 2 数据库URL 3 建立会话,21.4.2 如何操作数据库,既然连接上了数据库,本节将介绍如何操作数据库。操作数据库主要是查询,下面学习如何进行查询。查询操作是数据库中最基本的
8、语句。通过如下的语句,可以对数据库执行查询,查询的结果是以结果集ResultSet的形式返回。有关ResultSet集,可以参考API文档。(具体内容请参照本书),21.4.3 高级SQL类型,一直以来处理的数据都是数字、字符串等等,但在实际应用中,可能会向数据库中存储一些复杂类型,如图像等数据。在SQL中,BLOB代表二进制位的大型对象类型,CLOB代表字符大型对象,可以分别通过getBlob或getClob等方法来处理这些大型对象,在这里限于篇幅,不再针对它进行举例,有兴趣的读者可以查阅相关资料。,21.5 事务处理,在实际工作中,对数据库的操作并不能保证完全不出错,一旦出错了,如何能保证
9、数据的完整性和统一性呢?本节将为大家引入一个新的概念:事务。事务跟数据库中数据完整性和统一性有什么联系?如何进行事务处理?本节通过详细的实例,来解决这方面的困扰。,21.5.1 什么是事务处理,事物是SQL中的单个逻辑工作单元,一个事务内的所有语句被作为整体执行,遇到错误时,可以回滚事务,取消事务所作的所有改变,从而可以保证数据库的一致性和可恢复性。一个事务逻辑工作单元必须具有以下四种属性,如下所示:(具体内容请参照本书),21.5.2 事务处理的过程演练,本节将通过一个实例,演示事务处理中的回滚功能,实例代码如下所示。(具体内容请参照本书),21.6 预查询,预查询顾名思义就是预先查询。有的
10、软件中,输入一个人的姓名后,它的全部数据都会出现,这就是使用现在要讲述的预查询。(具体内容请参照本书),21.7 常见疑难解答,(具体内容请参照本书),21.7.1 操作数据库的具体步骤是什么,1创建Statement对象2方法executeQuery用于产生单个结果集的语句,例如SELECT语句。3方法executeUpdate用于执行INSERT、UPDATE或DELETE语句以及SQL DDL(数据定义语言)语句4方法execute用于执行返回多个结果集、多个更新计数或二者组合的语句,多数程序员不需要该高级功能。5语句完成6关闭Statement对象7Statement对象将由Java垃圾收集程序自动关闭。而一种好的编程风格,应在不需要Statement对象时,显式地关闭它们,这将立即释放DBMS资源,有助于避免潜在的内存问题。,21.7.2 数据库中的视图、图表、缺省值、规则、触发器、存储过程的意义,(具体内容请参照本书),