java数据库编程接口.pdf
《java数据库编程接口.pdf》由会员分享,可在线阅读,更多相关《java数据库编程接口.pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1第第 9 章章 java 数据库编程接口数据库编程接口 9.1 知识框架 图 9.1 本章知识结构 9.2 知识点分析 一、数据库基础知识概述一、数据库基础知识概述 1数据库技术概述:数据库是在长期存储在计算机内的、有组织的、可共享的数据集合。数据是数据库中存储的基本对象。数据库管理系统 DBMS(Database Management System)是位于用户和操作系统之间的一层数据管理数据库基础知识 数据库技术概述 数据库结构 java数据库编程接口 SQL 语言 SQL 语言基础知识 表的创建与维护 数据查询 SELECT 插入语句 INSERT 数据维护 数据库的逻辑结构(二维表)
2、外来码 二维表的操作 投影操作 选择操作 查询排序输出 ORDER BY 修改语句 UPDATE 删除语句 DELETE 表的创建与删除 连接操作:多表查询 查询统计 Access 数据库实例 Access 操作界面 在 Access 中创建表 表中数据的维护与浏览 创建数据源 JDBC 与数据库访问 JDBC 概述 利用JDBC访问数据库的基本方法 JDBC 的常用类与接口 建立数据库连接 创建语句对象 向数据库发送 SQL 语句:查询,插入,删除和修改 执行带有参数的 SQL 语句 在 数 据 库 中 创 建 表CREATE TABLE 语句 数据维护 2软件。主要包括数据定义、数据操纵、
3、数据库的运行管理和建立和维护等功能。数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。常常把数据库系统简称为数据库。数据库管理技术的发展经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。2.数据库结构 数据模型决定了数据库组织和管理数据的方式,在数据库领域中最常用的数据模型有层次模型、网状模型、关系模型和面向对象模型。(1)二维表 关系模型是目前最重要的一种数据模型,关系型数据库采用关系模型作为数据的组织方式。关系模型中数据的逻辑结构是一张二维表,由行和列组成。列决定了二维表的结构,每列表示一个属性。每行存储二维表的一条记
4、录。表 9.1 学生信息表就是一张二维表。表 9.1 学生信息表 学号 姓名 性别 出生年月 学院号 2008111101 王晓明 男 1990-4-6 D01 2008111102 黄大忠 男 1989-8-1 D02 2008111103 张丽丽 女 1991-1-1 D01 2008111104 李萍 女 1990-2-8 D03 表 9.2 学院表 学院号 学院名 电话 D01 计算机学院 86361302 D02 外语学院 86381333 D03 材料学院 86361311 D04 建筑城规学院 86361388 在表 9.1 学生信息表中,每个学生都用学号、姓名、性别、出生年月和
5、学院号等五个属性来描述,每一行的取值对应一条学生记录。所有学生信息表中的记录构成了一个集合,每条学生记录可以看作这个集合中的一个元素。因为集合中的元素不能重复,所以关系型数据库的二维表的记录也不能重复。(2)关系:一个关系对应一张二维表,如表 9.1 学生信息表和表 9.2 学院表。(3)元组:标的一行。(4)属性:一列为一个属性。(5)表的主码(Key):表中的某个属性或者属性组,可以唯一的确定表中的一组记录。关系模型以主码作为唯一性标识,主码不能为 NULL。如学生信息表可以采用学号作为主码,因为每个学生的学号是唯一的,字段学号在任何一条学生记录中都不能为空;学院表一般采用学院号作为主码。
6、(6)表的外码(Foreign key):一个表中的某一列是另一个表的主码。如表 9.1 学生信息表中的学院号是表 9.2 学院表的主键,那么在表 9.1 中字段学院号就是外码。学生信息表和学院表之间是有联系的,每个学生只能属于一个学院,而一个学院可以包含很多名学生。学生信息表和学院表之间也是存在于某种约束关系的,学生信息表中的“学院号”的取值必须是学院表中“学院号”取值的某个有效值。删除学院表之前,必须确定学生信息表中已经没有学院号等于待删除学院编号的学生记录。通过这些约束关系,来保持学院表和学生信息表中数据的一致性。二、二、SQL 语言简介语言简介 1.SQL 3SQL(Structure
7、d Query Language)结构化查询语言,是一个通用的,功能极强的关系数据库语言。SQL语言结构简洁,功能强大,简单易学。自从 IBM 公司 1981 年推出以来,SQL 语言得到了广泛的应用。大多数数据库都采用SQL作为共同的数据存储语言和标准接口,如Oracle,Sybase,Informix,SQL server等。掌握 SQL 语言是编写 Java 数据库应用程序的基础。2.表的创建、数据维护和查询的 SQL 操作(1)创建和删除表的 SQL 操作 CREATE TABLE studentInfo /创建学生信息表 studentInfo sno CHAR(10)PRIMARY
8、 KEY,sname VARCHAR(20),sex VARCHAR(2),birthdate DATE,dno varchar(3);DROP TABLE studentInfo;/删除学生信息表 studentInfo 说明:SQL 语句不区分大小写。创建表时,各个字段的定义之间用逗号隔开。一条 SQL 语句书写结束后以分号结束。每条 SQL 语句完成一项具体的功能。注意 char 和 varchar 的区别。u char 为定长字符型,CHAR(10)代表字符串的长度为 10,当输入数据不足为 10 的时候,系统会自动补足空格。u VARCHAR 为变长字符型,VARCHAR(20)代表
9、最大字符数为 20,当输入字符不足 20 的时候,系统只会存储用户实际输入的字符长度,而不会补空格。(2)维护表的 SQL 操作 主要包括从表中插入新的记录,删除记录和修改记录的操作。向表中出入一条新的记录 INSERT INTO studentInfo VALUES(2008111105,刘晓,女,1991-3-6,D04);向学生信息表 studentInfo 中插入一条新记录。修改表中的一条记录 UPDATE studentInfo set sex=女 WHERE sno=2008111105;将 studentInfo 表中学号为 2008111105 的学生的性别改为女。删除表中符合
10、条件的记录 DELETE FROM studentInfo WHERE sno=2008111105;从 studentInfo 表中删除学号为 2008111105 的学生记录。(3)数据查询操作 从数据库中查找符合条件的记录,并对数据进行排序、统计等。单表查询 SELECT*FROM studentInfo where sex=女 AND birthdate#1990-1-1#从学生信息表 studentInfo 中查询 1990 年 1 月 1 号后出生的所有女生信息。SELECT sno,sname,dno FROM studentInfo WHERE dno=D01 AND sex=
11、男;4 显示学院号是 D01 的所有男生的学号,姓名和学院号。多表查询 SELECT sname,sex,birthdate,dname FROM studentInfo,dept where studentInfo.sno=dept.sno AND sex=男;查询显示计算机学院所有男生的姓名、性别、出生日期和学院名称。查询统计 SELECT COUNT(*),SUM(salary)FROM emp WHERE dno=d01;统计部门号 d01 的职工人数和工资总和。模糊查询 SELECT*FROM studentInfo WHERE sname like 王*;查找 studentInf
12、o 表中所有姓王的同学。三、三、ACCESS 数据库实例数据库实例 1.ACCESS 数据库简介 ACCESS 是微软公司推出的基于 Windows 的桌面关系数据库管理系统(RDBMS),是 Office 系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块 7 种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。在 ACCESS 中创建数据库,有两种方法:一是使用模板创建,模板数据库可以原样使用,也可以对它们进行自定义,以
13、便更好地满足需要;二是先建立一个空数据库,然后再添加表、窗体、报表等其他对象,这种方法较为灵活,但需要分别定义每个数据库元素。无论采用哪种方法,都可以随时修改或扩展数据库。2.ACCESS 中的数据类型 在 Access 中有“文本”、“备注”、“数字”、“日期/时间”、“货币”、“自动编号”、“是/否”、“OLE 对象”、“超级链接”、“查阅向导”十种数据类型。每种数据类型的用法如下:(1)文本:这种类型允许最大 255 个字符或数字,Access 默认的大小是 50 个字符,而且系统只保存输入到字段中的字符,而不保存文本字段中未用位置上的空字符。可以设置“字段大小”属性控制可输入的最大字符
14、长度。(2)备注:这种类型用来保存长度较长的文本及数字,它允许字段能够存储长达 64000 个字符的内容。但 Access 不能对备注字段进行排序或索引,却可以对文本字段进行排序和索引。在备注字段中虽然可以搜索文本,但却不如在有索引的文本字段中搜索得快。(3)数字:这种字段类型可以用来存储进行算术计算的数字数据,用户还可以设置“字段大小”属性定义一个特定的数字类型,任何指定为数字数据类型的字型可以设置成“字节”、“整数”、“长整数”、“单精度数”、“双精度数”、“同步复制 ID”、“小数”五种类型。在 Access 中通常默认为“双精度数”。(4)日期/时间:这种类型是用来存储日期、时间或日期
15、时间一起的,每个日期/时间字段需要 8 个字节的存储空间。(5)货币:这种类型是数字数据类型的特殊类型,等价于具有双精度属性的数字字段类型。向货币字段输入数据时,不必键入人民币符号和千位处的逗号,Access 会自动显示人民币符号和逗号,并添加两位小数到货币字段。当小数部分多于两位时,Access 会对数据进行四舍五入。精确度为小数点左方 15 位数及右方 4 位数。(6)自动编号:这种类型较为特殊,每次向表格添加新记录时,Access 会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。自动编号一旦被指定,就会永久地与记录连接。如果删除了 5表格中含有自动编号字段的一个记录后,A
16、ccess 并不会为表格自动编号字段重新编号。当添加某一记录时,Access 不再使用已被删除的自动编号字段的数值,而是重新按递增的规律重新赋值。(7)是/否:这种字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。(8)OLE 对象:这个字段是指字段允许单独地“链接”或“嵌入”OLE 对象。添加数据到 OLE 对象字段时,可以链接或嵌入Access表中的OLE对象是指在其他使用OLE协议程序创建的对象,例如WORD文档、EXCEL 电子表格、图像、声音或其他二进制数据。OLE 对象字段最大可为 1GB,它主要受磁盘空间限制。(
17、9)超级链接:这个字段主要是用来保存超级链接的,包含作为超级链接地址的文本或以文本形式存储的字符与数字的组合。当单击一个超级链接时,WEB 浏览器或 Access 将根据超级链接地址到达指定的目标。超级链接最多可包含三部分:一是在字段或控件中显示的文本;二是到文件或页面的路径;三是在文件或页面中的地址。在这个字段或控件中插入超级链接地址最简单的方法就是在“插入”菜单中单击“超级链接”命令。(10)查阅向导:这个字段类型为用户提供了一个建立字段内容的列表,可以在列表中选择所列内容作为添入字段的内容。3.ACCESS 数据库的创建步骤 在 ACCESS 建立空数据库,名称为 student,然后在
18、数据库 student 中创建表 student 和 dept。(1)启动 ACCESS 2003,选择“文件”菜单,“新建”,然后选择“空数据库”,在弹出的对话框中输入数据库的名称“student”。如图 9.2 所示。图 9.2 创建空数据库 student 单击确定后出现如图 9.3 所示的对话框。图 9.3 student 的数据库主窗口(2)从图 9.3 可以看出有三种方法可以创建表:“使用设计器创建表”,“使用向导创建表”和“通过输入数据创建表”。这里双击选择“使用设计器创建表”。打开如图 9.4 所示的对话框。输入表 studentInfo 中各个字段的名称,并设置其数据类型和长
19、度。6 图 9.4 输入表 studentInfo 的所有字段(3)设置 sno 为 student 表的主键。将鼠标指向字段 sno,右单击鼠标,在弹出的快捷菜单中选择“主键”。如果在字段 sno 的左侧会出现一个小钥匙图标,说明 sno 已经被设置主键了。(4)表的所有字段属性都输入设置结束后,单击“文件”菜单,“保存”,在弹出的对话框中输入表的名称 studentInfo。如图 9.5 所示。图 9.5 表结构创建结束后,保存表名为 studentInfo(5)回到 student 的数据库主窗口中,双击 studentInfo 表,在打开的对话框中输入学生信息。输入结束后单击图 9.6
20、 右上角的关闭按钮,回到 student 的数据库窗口。图 9.6 在表 studentInfo 中输入几条记录(6)用同样的方法创建表 dept,并在其中输入几条记录信息。四、四、JDBC 与数据库访问与数据库访问 1.JDBC 概述 Java程序可以作为数据库服务器的客户端程序,向服务器发送SQL命令并显示返回的结果。JDBC(Java DataBase Connectivity)是一个将 java 语言与 SQL 结合的 API。JDBC 封装了与各种数据库服务器通信的细节,简化了访问数据库的程序代码,并使得同一个 Java 程序可以访问多个数据库服务器。JDBC API 主要位于 ja
21、va.sql 包中。java 程序通过 JDBC API 访问数据库的过程如图 9.7 所示。7 图 9.7 java 程序通过 JDBC API 访问数据库 2.JDBC 的实现原理 JDBC 的实现如图 9.8 所示。图 9.8 JDBC 的实现(1)JDBC 驱动管理器:java.sql.DriverManager,负责注册 JDBC 驱动器,并为创建数据库连接提供支持。由 SUN 公司实现。(2)JDBC 驱动器 API:java.sql.Driver,由 SUN 公司实现。(3)JDBC 驱动器:有数据库供应商或者第三方工具提供商创建,也称为 JDBC 驱动程序。JDBC 驱动程序负
22、责与特定的数据库连接,并处理通信细节。JDBC 驱动器可以分为以下四种类型:第一类驱动程序:JDBC-ODBC 驱动器。ODBC(Open DataBase Connectivity)开放数据库互连是微软公司为应用程序提供的访问任何一种数据库的标准 API。JDBC-ODBC 驱动器是由 SUN 公司开发实现的驱动器,为 Java 程序和 ODBC 之间建立了桥接,使得 Java 程序可以间接地访问 ODBC API。但是这种方式连接数据库的速度比较慢,把请求转发给 ODBC,再由 ODBC 将请求发送给数据库服务器。第二类驱动程序:由部分 Java 程序代码和部分本地代码组成。用于与数据库的
23、客户端 API 进行通信。第三类驱动程序:完全由 Java 语言编写的类库。用一种与具体数据库服务器无关的协议将请求发送给服务器的特定组Java 程序 JDBC API JDBC 实现 MySQL Oracle SQLServer ACCESjava.sql.DriverManager java.sql.Connection java.sql.Statement ResultSet Java 程序 JDBC 实现 MySQL JDBC 驱动管理器:DriverManager 类 Oracle 的JDBC 驱动器 MySQL 的 JDBC 驱动器 连接 ODBC 的 JDBC 驱动器 Oracl
24、e ACCESS ODBC 实现 JDBC 驱动器 API:Driver 接口 注册 实现 JDBC API 8件,再由该组件按照特定数据库协议对请求进行翻译,把翻译后的内容发送给数据库服务器。第四类驱动程序:完全由 Java 语言编写的类库。直接按照特定数据库的协议,把请求发送给数据库服务器。通过第四类驱动程序访问数据库的速度最快。编程的时候优先考虑第三类和第四类驱动程序,如果某种数据库不存在第三类或者第四类驱动程序,可以考虑使用第一类和第二类驱动程序。3.JDBC API 简介及使用(1)java.sql.DriverManager 驱动程序管理类:用来装载驱动程序并为创建数据库连接提供支
25、持。(2)java.sql.Connection 接口:用来连接某一个指定的数据库。(3)该接口提供了执行 SQL 语句、取得查询结果的方法。有两个子接口:CallableStatement,PreparedStatement。PreparedStatement:用于执行预编译的 SQL 语句。(4)ResultSet:该接口提供了对结果集进行处理的方法。4.编程步骤(1)与数据库建立连接 访问数据库之前,首先要与数据库建立连接。建立连接后,用户得到一个实现 java.sql.Connection 接口的对象,然后利用这个对象完成对数据库的操作。获取要访问的数据库的驱动程序类库,将其放在 cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 数据库 编程 接口
限制150内