Download presentation
Presentation is loading. Please wait.
1
项目6公司数据信息检索
2
项目创设 本项目将根据本系统在公司员工管理过程中的实际需求,创设了三个项目任务 任务 1 添加新员工 任务 2 查询员工信息 任务 3
使大家了解和掌握Java强大的数据库应用编程功能,掌握Java连接数据库、操作表中数据的相关类及其使用方法,提高学习者综合运用数据库开发知识来开发Java数据库应用程序的能力 任务 1 添加新员工 任务 2 查询员工信息 任务 3 部门信息维护
3
本项目的技能目标 Java数据库应用开发 JDBC 介绍 数据库 连接方法 数据操作 流程 常用SQL 语句应用 触发器的 应用
4
学习目标 三 一 二 四 五 掌握Java数据库开发中的相关类及其使用方法 了解触发器的原理和使用方法 了解关系数据库的相关知识
掌握JDBC访问数据库的方法 掌握SQL语句的使用方法
5
6.1 任务 1 添加新员工 目标效果 1 必备知识 2 拓展训练 3 实现机制 4
6
目标效果 本任务的目标是为系统管理员提供将新员工的信息录入到系统中的功能 。 该任务执行的目标效果如图6-1所示
7
6.1.1 目标效果 如何实现这一涂鸦板的任务,学习者不妨先来思考几个问题 : 1 2 3 4
目标效果 如何实现这一涂鸦板的任务,学习者不妨先来思考几个问题 : 1 2 3 4 当用户填写好员工信息,点击“保存”按钮时,数据如何保存进SQL Server数据库中?保存到了数据库中的哪个表中? 点击照片处的“浏览…”按钮时,进行的照片选择、大小判断、保存到指定位置是如何实现的?图片是如何保存到数据库中的? 所属部门选项中的内容是事先写好的吗? “清除”按钮的功能和存在的必要性是什么?
8
必备知识 1 JDBC基础知识 2JDBC数据库连接方法 5 INSERT语句 必备知识 3数据操作流程 4 SQL基础
9
6.1.2 必备知识 1 JDBC基础知识 JDBC简介 Oracle JDBC驱动程序for Oracle JDBC应用程序
Java应用程序 JDBC应用程序 JDBC驱动程序for Oracle Oracle JDBC驱动程序for DB2 DB2 ODBC 数据源 JDBC-ODBC驱动程序 JDBC网络驱动程序 …… 各种数据库
10
6.1.2 必备知识 1 JDBC基础知识 Oracle Oracle驱动程序 ODBC驱动程序 SQL SQL Server驱动程序
应用程序 ODBC驱动程序 Oracle驱动程序 Oracle SQL Server驱动程序 SQL Server Access驱动程序 其它数据库驱动 …… Access
11
6.1.2 必备知识 1 JDBC基础知识 Java程序 JDBC-ODBC 桥接程序 DB客户端 程序库 ODBC 驱动程序 数据库
Dreiver Manager Java程序 JDBC-ODBC 桥接程序 ODBC 驱动程序 数据库 DB客户端 程序库 中介服务程序
12
6.1.2 必备知识 2 JDBC数据库连接方法 首先 其次 最后 利用Statement、ResultSet类访问已经建立连接的数据库。
驱动中的类加载成功后,Class.forName会向DriverManager注册这个类,然后 利用DriverManager类的getConnection静态方法创建数据库连接 利用Statement、ResultSet类访问已经建立连接的数据库。 利用Class类的forName静态方法加载要使用的JDBC驱动程序
13
必备知识 3 数据操作流程 Start create Statement End executeUpdate Updatecount excuteQuery ResultSet 是否为查询 False True Connection ①使用Connection对象的create Statement方法创建Statement对象 ②获得一个Statement对象。 ④如果是查询的SQL命令则使用executeQuery方法执行SQL命令。 ⑤获得数据库返回的结构,以ResultSet对象保存。 ⑥返回数据库中数据受影响的数目。 关闭对象 ⑦关闭创建的各种对象 成功创建数据库连接之后,我们要开始操作数据库的内容以及查询数据库的数据。此时需要用到的类有Statement和ResultSet以及ResultSetMetaData等。访问数据库的基本流程如图6-7所示:
14
6.1.2 必备知识 4 SQL基础 语 句 功 能 Create 创建数据库对象,如数据库、表、字段等 Drop
SQL(Structured Query Language)是操作关系型数据库的通用语言, 用于完成各种关系型数据库的数据库、数据表、字段的创建和删除以及 数据表中数据的操作(插入、修改、删除、查询等)。 常用的SQL语句及功能如表6-1所示 语 句 功 能 Create 创建数据库对象,如数据库、表、字段等 Drop 删除数据库对象,如数据库、表、字段等 Select 查询数据表中的数据 Insert 插入数据到数据表中 Update 更新数据表中的数据 Delete 删除数据表中的数据
15
6.1.2 必备知识 5 INSERT语句 INSERT 语句的语法格式如下: TEXT TEXT TEXT TEXT
INSERT [INTO] 表名 [(列名1,列名2,…)] Values(表达式1,表达式2,…)
16
拓展训练 尝试实现这么一个功能: 查询SQL Server2000中自带的pubs数据库的employee表,并将结果显示到屏幕上;插入一条内容固定的数据;再查询一次pubs数据库的employee表,验证插入成功
17
实现机制 1添加新员工任务程序结构 本任务的实现包括7个源文件:AEIMFrame.java、Employee.java、EmployeeOperation.java、GBC.java、FileCopy.java、DatabaseAccess.java和EmployeeInput.java。 。 它们在Eclipse的包(package)视图中的位置如图6-11所示
18
2. EmployeeOperation.java
实现机制 2 添加新员工任务程序剖析 1. Employee.java 2. EmployeeOperation.java 添加新员工任务程序 代码分析 3. FileCopy.java 4. GBC.java 5. DatabaseAccess.java 6. EmployeeInput.java
19
6.2 任务 2 查询员工信息 目标效果 1 必备知识 2 拓展训练 3 实现机制 4
20
目标效果 本任务的目标是为操作者提供一个灵活、高效的查询功能 。 任务执行的目标效果如图6-12所示:
21
6.2.1 目标效果 如何实现这一员工服务的任务,请先来思考三个问题: 3 1 2 打印功能是如何实现的?
目标效果 如何实现这一员工服务的任务,请先来思考三个问题: 3 1 2 打印功能是如何实现的? 进行模糊查询的SELECT语句如何构造? 查询结果如何以表格的形式显示在界面下部?
22
必备知识 1 SELECT语句 必备知识 2 客户机/服务器 UDP通信流程
23
6.2.2 必备知识 1 SELECT语句 SELECT 字段列表|* [INTO 目标数据表] FROM 源数据表或视图[,…n]
TEXT SELECT 字段列表|* [INTO 目标数据表] FROM 源数据表或视图[,…n] [WHERE 条件表达式] [GROUP BY 分组表达式[HAVING 搜索表达式]] [ORDER BY 排序表达式 [,…n] [ASC]|[DESC]] [COMPUTE 行聚合函数名(统计表达式)[,…n][BY 分类表达式 [,…n]]] TEXT TEXT TEXT
24
6.2.2 必备知识 1 SELECT语句 使用LIKE实现模糊查询 使用星号(*)或列名 改变查询结果列的标题 SELECT语句 使用方法
使用WHERE子句 表达式做为查询列 使用IS NULL查询空值 查询多个表 使用ORDER BY子句排序 使用IN指定列值范围
25
拓展训练 需要实现的功能: 在掌握以上SELECT语句的使用方法后,我们换一个数据库进行查询,来增强对SELECT语句的理解,为后面的实现本任务的功能做好准备
26
它们在Eclipse的包(package)视图中的位置如图6-13所示:
实现机制 1查询员工信息任务程序结构 本任务的实现包括4个源文件:AEIMFrame.java、EmployeeSearch.java、DatabaseAccess.java和GBC.java 。 它们在Eclipse的包(package)视图中的位置如图6-13所示:
27
2. ResultSetTableModel.java
实现机制 2查询员工信息任务程序剖析 1. EmployeeSearch.java 查询员工信息任务 程序代码分析 2. ResultSetTableModel.java
28
6.3 任务 3 部门信息维护 目标效果 1 必备知识 2 拓展训练 3 实现机制 4
29
目标效果 本任务的目标是提供企业部门信息初始化、部门信息修改已经部门员工查询功能 。 该任务执行的目标效果如图6-14所示:
30
6.3.1 目标效果 查询部门信息的任务和以下几个问题紧密联系,请学习者先加以思考: 1 2 3
目标效果 查询部门信息的任务和以下几个问题紧密联系,请学习者先加以思考: 1 2 3 添加部门时输入的信息只有2个,而显示的部门信息中却有部门编号和部 门员工人数? 界面中没有部门员工人数的修改位置,其存储的内容是如何变化的? 如何实现部门信息表中数据的修改和删除?
31
必备知识 1 UPDATE语句 必备知识 3 触发器 2 DELETE语句
32
6.3.2 必备知识 1 UPDATE语句 UPDATE语句基本语法格式如下 TEXT TEXT TEXT TEXT UPDATE 表名
SET 列名=表达式 [,列名=表达式] [WHERE 条件]
33
6.3.2 必备知识 2 DELETE语句 DELETE语句基本语法格式如下 TEXT TEXT TEXT TEXT
DELETE 表名 [WHERE 条件]
34
必备知识 3 触发器 根据引起触发器的操作类型 INSERT触发器 UPDATE触发器 DELETE触发器
35
必备知识 3 触发器 根据引起触发时刻 AFTER触发器 INSTEAD触发器
36
6.3.2 必备知识 3 触发器 创建触发器的语法结构如下: TEXT TEXT TEXT TEXT CREATE TRIGGER 触发器名
必备知识 3 触发器 创建触发器的语法结构如下: TEXT TEXT TEXT TEXT CREATE TRIGGER 触发器名 ON 表名 {[FOR|AFTER]|INSTEAD OF} {[INSERT][,][UPDATE][,][DELETE]} AS [IF UPDATE(列名1)[{AND|OR}] UPDATE(列名2)] […n] ] SQL 语句
37
拓展训练 在表6-4至表6-6所示的表中,用SQL语句实现数据的插入、修改和删除功能,并且使用触发器来实现删除表6-4学生信息表中的一条数据时,同时删除成绩表中与该学生相关的所有成绩信息
38
实现机制 1部门信息维护任务程序结构 本任务的实现包括5个源文件:AEIMFrame.java、DepartmentSearch.java、DatabaseAccess.java、GBC.java和ResultSetTableModel.java 。 它们在Eclipse的包(package)视图中的位置如图6-15所示:
39
1. DepartmentSearch.java
实现机制 2部门信息维护任务程序剖析 1. DepartmentSearch.java 部门信息维护任务 代码分析 2.触发器分析
40
项目总结 “公司数据信息检索”项目中主要实现了三个任务,即添加新员工、查询员工信息和部门信息维护,每个任务实现的主要技术如下:
任务一:添加新员工 应用JDBC技术,实现从客户端连接到SQL Server数据库服务器并利用SQL语句中的INSERT语句将新员工的信息保存到数据库中的员工信息表tb_userlist中。主要展示了如何加载数据库的JDBC驱动程序,如何使用Connection类、Statement类等来进行数据库的连接和操作。
41
项目总结 任务二:查询员工信息 使用SQL语句中的SELECT语句来实现强大的查询功能。SELECT语句是实际应用中使用最多的SQL语句之一。本任务主要用到使用LIKE和通配符“%”来实现模糊查询,即能根据给定的、并不完善的信息来查询符合该要求的相关记录。此外,任务一中的一些技术这里也都有用到,并且还用到了一个保存查询结果集的ResultSet类。因此本任务学习了如何进行模糊查询,并且将查询结果以表格的实现显示出来。 任务三:部门信息维护 综合应用了SQL语句中的几种常用语句,如SELECT、INSERT、UPDATE和DELETE语句,实现了部门信息的添加、修改和删除,并且添加和修改的时候判断新部门是否存在。本任务说明了在真正软件开发过程中应考虑的一些问题,比如部门不能在程序代码中固定,否则当部门信息发生变化时就必须得修改应用程序代码,这样的程序是不合理的。
42
知识巩固 在本项目中我们学习了如何进行Java的数据库应用编程,从JDBC连接数据库的方式、JDBC常用类和接口的使用方法到常用SQL语句的使用等。主要的知识点如下: 1)JDBC是Java专用的数据库编程接口,它可以简化Java应用程序连接和使用数据库的操作。JDBC有多种连接方式,能方便地连接到各种数据库。JDBC的接口和类定义都在包java.sql和包javax.sql中。 2)不论选择哪一种JDBC驱动程序,数据库的连接方法是统一的,即:加载选定的JDBC驱动程序;利用该驱动创建一个与数据库的连接;连接建立后通过一些相关类来访问和操作数据库。这个过程中用到的类有Class、DriverManager、Connection以及Statement、ResultSet等。
43
知识巩固 3)SQL语言是操作关系型数据库的通用语言。其常用的操作是对数据库表中数据的查询、插入、修改和删除操作,分别由SELECT、INSERT、UPDATE和DELETE语句实现。其中SELECT语句的语法格式复杂,可以有很多子句,能实现复杂的查询功能。 4) Statement类是数据库应用程序中常用的一个类,主要注意其两个方法executeUpdate()方法和executeQuery()方法使用上的不同。executeUpdate()方法用来执行INSERT、UPDATE和DELETE语句,方法的返回值为语句执行所影响到的行数,是个整型数;而executeQuery()方法用来执行SELECT语句,返回值为一个结果集,可以赋值给ResultSet类的对象,这个区别一定要注意。 5) 程序设计要考虑到使用和维护,要用户界面友好,操作方便,并且设计合理,不能要求用户按某种特殊方式使用系统,并且注意系统的扩展性和可维护性。
44
Thank You !
Similar presentations