69
1 第第第第 第第第第 Java Java 第第第第第第第 第第第第第第第 8 8 Java Java 第第第 第第第 第第第第第第第 第第第第第第第

第三部分 Java 语言编程应用篇

  • Upload
    kalea

  • View
    139

  • Download
    0

Embed Size (px)

DESCRIPTION

第三部分 Java 语言编程应用篇. 第 8 章 Java 语言的 数据库处理技术. 学习目的. 熟悉 MySQL 和 SQL Server 数据库的安装、配置和基本操作;了解 JDBC 技术的发展、特点及常用驱动程序类型;掌握 Java 应用程序连接到数据库的基本步骤;进一步掌握 Java 数据库应用程序的开发方法;熟练掌握 SQLExplorer 数据库插件的安装配置及基本操作。. 主要内容. 数据库安装与配置 数据库连接 数据库应用系统开发 SQLExplorer 数据库插件技术. 8.1 数据库安装与配置. - PowerPoint PPT Presentation

Citation preview

Page 1: 第三部分 Java 语言编程应用篇

1

第三部分第三部分 JavaJava 语言编程应用篇语言编程应用篇

第第 88 章 章 JavaJava 语言的语言的数据库处理技术数据库处理技术

Page 2: 第三部分 Java 语言编程应用篇

2

学习目的学习目的

熟悉熟悉 MySQLMySQL 和和 SQL ServerSQL Server 数据库数据库的安装、配置和基本操作;了解的安装、配置和基本操作;了解 JDBCJDBC技术的发展、特点及常用驱动程序类技术的发展、特点及常用驱动程序类型;掌握型;掌握 JavaJava 应用程序连接到数据库应用程序连接到数据库的基本步骤;进一步掌握的基本步骤;进一步掌握 JavaJava 数据库数据库应用程序的开发方法;熟练掌握应用程序的开发方法;熟练掌握 SQLESQLExplorerxplorer 数据库插件的安装配置及基本数据库插件的安装配置及基本操作。操作。

Page 3: 第三部分 Java 语言编程应用篇

3

主要内容主要内容

☻ 数据库安装与配置数据库安装与配置

☻ 数据库连接数据库连接

☻ 数据库应用系统开发数据库应用系统开发

☻ SQLExplorerSQLExplorer 数据库插件技术数据库插件技术

Page 4: 第三部分 Java 语言编程应用篇

4

8.18.1 数据库安装与配置数据库安装与配置☻常用数据库常用数据库 MySQLMySQL 和和 SQL Server 2000SQL Server 2000

的特点和性能,数据库在的特点和性能,数据库在 WindowsWindows 操作操作系统环境下的安装及配置,为系统环境下的安装及配置,为 JavaJava 程程序的数据库处理搭建了数据环境。序的数据库处理搭建了数据环境。

☻知识学习要求掌握为:知识学习要求掌握为: 熟练掌握熟练掌握 WindowsWindows 环境下环境下 MySqlMySql 数据数据

库和库和 SQL Server 2000SQL Server 2000 数据库的安装及配数据库的安装及配置。置。

Page 5: 第三部分 Java 语言编程应用篇

5

8.1.1 8.1.1 MySQLMySQL 数据库简介及安装配置数据库简介及安装配置☻MySQLMySQL 数据库是一个多线程的,结构化查询数据库是一个多线程的,结构化查询

语言语言 (SQL)(SQL) 数据库服务器。数据库服务器。☻MySQLMySQL 是一个完全免费的数据库。是一个完全免费的数据库。☻MySQLMySQL 数据库可以自由用于个人或商业用途。数据库可以自由用于个人或商业用途。☻MySQL MySQL 的执行性能非常高,运行速度非常快,的执行性能非常高,运行速度非常快,

并且非常容易使用。并且非常容易使用。☻MySQLMySQL 是客户机和服务器模式的分布式系统,是客户机和服务器模式的分布式系统,

由由 SQL SQL 服务器、客户端、管理工具和应用程服务器、客户端、管理工具和应用程序等一整套工具组成。目前最新版本可以作为序等一整套工具组成。目前最新版本可以作为复杂情况以及大负荷数据库解决方案的平台。复杂情况以及大负荷数据库解决方案的平台。

Page 6: 第三部分 Java 语言编程应用篇

6

可以在可以在 MySQLMySQL 的官方网站免费下载不同版本的官方网站免费下载不同版本的的 MySQLMySQL 的安装程序,下载的安装程序,下载 MySQLMySQL 安装程序安装程序的网址如下所示:的网址如下所示:http://dev.mysql.com/downloads/index.htmlhttp://dev.mysql.com/downloads/index.html

本章所使用的为支持 本章所使用的为支持 WindowsWindows 系列操作系系列操作系统的统的 MySQL 5.0MySQL 5.0 版本,对应安装程序压缩包的版本,对应安装程序压缩包的文件名为文件名为 mysql-5.0.22-win32.zipmysql-5.0.22-win32.zip ,安装,安装 MyMySQLSQL 数据库具体操作步骤如下。数据库具体操作步骤如下。

MySQLMySQL 数据库安装数据库安装

Page 7: 第三部分 Java 语言编程应用篇

7

☻MySQLMySQL 数据库系统的安装数据库系统的安装

Page 8: 第三部分 Java 语言编程应用篇

8

☻安装类型安装类型 Setup TypeSetup Type 选择选择

Page 9: 第三部分 Java 语言编程应用篇

9

☻选择要安装的组件,设置待安装数据库系统的位置选择要安装的组件,设置待安装数据库系统的位置

Page 10: 第三部分 Java 语言编程应用篇

10

☻新建用户账户以及进行注册 新建用户账户以及进行注册

Page 11: 第三部分 Java 语言编程应用篇

11

MySQLMySQL 数据库配置数据库配置☻进入配置对应的数据库服务器状态进入配置对应的数据库服务器状态☻服务器实例配置服务器实例配置☻选择服务器类型的配置方式选择服务器类型的配置方式☻确认数据库对应文件的安装位置确认数据库对应文件的安装位置☻设置对应的网络传输协议 设置对应的网络传输协议 ☻选择对应的字符集 选择对应的字符集 ☻安全性设置 安全性设置 ☻完成安装 完成安装

Page 12: 第三部分 Java 语言编程应用篇

12

☻进入配置对应的数据库服务器状态 进入配置对应的数据库服务器状态

Page 13: 第三部分 Java 语言编程应用篇

13

☻服务器实例配置服务器实例配置

Page 14: 第三部分 Java 语言编程应用篇

14

☻选择服务器类型的配置方式选择服务器类型的配置方式

Page 15: 第三部分 Java 语言编程应用篇

15

☻确认数据库对应文件的安装位置确认数据库对应文件的安装位置

☻设置对应的网络传输协议设置对应的网络传输协议——默认端口号——默认端口号 33063306

Page 16: 第三部分 Java 语言编程应用篇

16

☻选择对应的字符集选择对应的字符集

Page 17: 第三部分 Java 语言编程应用篇

17

☻安全性设置安全性设置☻

☻完成安装完成安装

Page 18: 第三部分 Java 语言编程应用篇

18

8.1.2 SQL SERVER 20008.1.2 SQL SERVER 2000 数据库简介及安数据库简介及安装装

☻ SQL Server 2000SQL Server 2000 是一个功能完整全面的数据库产品。是一个功能完整全面的数据库产品。☻ SQL Server 2000SQL Server 2000 全面支持全面支持 WebWeb 功能的数据库解决方功能的数据库解决方

案。案。☻ SQL Server2000SQL Server2000 还在可伸缩性与可靠性方面保持着多还在可伸缩性与可靠性方面保持着多

项测试纪录。项测试纪录。☻ 无论以应用程序开发速度还是以事务处理运行速度来无论以应用程序开发速度还是以事务处理运行速度来

衡量,衡量, SQL Server 2000SQL Server 2000 都堪称最为快捷的数据库系都堪称最为快捷的数据库系统。统。

☻课后将以课后将以 Windows 2003Windows 2003 Server Server 操作系统为例,练习操作系统为例,练习企业版企业版 SQL ServerSQL Server 2000 2000 的安装过程。的安装过程。

Page 19: 第三部分 Java 语言编程应用篇

19

8.2 8.2 数据库连接数据库连接☻主要介绍主要介绍 JDBCJDBC 技术的诞生、特点及常用技术的诞生、特点及常用

驱动程序类型。以实际案例为基础,详细驱动程序类型。以实际案例为基础,详细介绍介绍 JavaJava 应用程序访问数据库的一般步应用程序访问数据库的一般步骤。骤。

☻知识重点为:知识重点为: 掌握 Java 应用程序利用 JDBC 技术

连接数据库一般步骤。 熟练掌握 Java 应用程序连接到各种数

据库的配置。

Page 20: 第三部分 Java 语言编程应用篇

20

8.2.1 JDBC8.2.1 JDBC 诞生背景诞生背景 ☻ 自从自从 JavaJava 语言于语言于 19951995 年年 55 月正式公布以来,月正式公布以来, JavaJava 风风靡全球。出现大量的用靡全球。出现大量的用 JavaJava 语言编写的程序,其中也语言编写的程序,其中也包括数据库应用程序。包括数据库应用程序。

☻ 由于没有一个由于没有一个 JavaJava 语言的语言的 APIAPI ,编程人员不得不在,编程人员不得不在 JJavaava 程序中加入程序中加入 CC 语言的语言的 ODBCODBC函数调用。函数调用。

☻ 这就使很多这就使很多 JavaJava 的优秀特性无法充分发挥,比如平台的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。无关性、面向对象特性等。

☻ 随着越来越多的编程人员对随着越来越多的编程人员对 JavaJava 语言的日益喜爱,越语言的日益喜爱,越来越多的公司在来越多的公司在 JavaJava 程序开发上投入的精力日益增加,程序开发上投入的精力日益增加,对对 JavaJava 语言接口的访问数据库的语言接口的访问数据库的 APIAPI 的要求越来越强的要求越来越强烈。也由于烈。也由于 ODBCODBC 的有其不足之处,比如它并不容易的有其不足之处,比如它并不容易使用,没有面向对象的特性等等,使用,没有面向对象的特性等等, SUNSUN公司决定开发公司决定开发以以 JavaJava 语言为接口的数据库应用程序开发接口。语言为接口的数据库应用程序开发接口。

☻ 在在 JDK1.XJDK1.X 版本中,版本中, JDBCJDBC只是一个可选部件,到了只是一个可选部件,到了 JJDK1.1DK1.1 公布时,公布时, SQLSQL 类包(也就是类包(也就是 JDBC APIJDBC API )就成)就成为为 JavaJava 语言的标准部件。 语言的标准部件。

Page 21: 第三部分 Java 语言编程应用篇

21

8.2.2 JDBC8.2.2 JDBC 技术概述技术概述

☻JDBCJDBC(( Java DataBase ConnectivitJava DataBase Connectivit

yy)称为)称为 JavaJava 数据库连接。数据库连接。

☻JDBCJDBC 是一种可用于执行是一种可用于执行 SQLSQL 语句的语句的Java APIJava API (( Application ProgramminApplication Programmin

g Interfaceg Interface ,应用程序接口)。它由,应用程序接口)。它由一些一些 JavaJava 语言写的类、界面组成。语言写的类、界面组成。

Page 22: 第三部分 Java 语言编程应用篇

22

8.2.3 JDBC8.2.3 JDBC 驱动程序的类型驱动程序的类型☻JDBCJDBC 的数据库访问要通过的数据库访问要通过 JDBCJDBC 驱动驱动

程序来完成,程序来完成, JDBCJDBC 驱动程序在驱动程序在 JavaJava应用程序与物理数据库之间架起了一座应用程序与物理数据库之间架起了一座桥梁。桥梁。

☻JDBCJDBC 驱动分为以下几种类型:驱动分为以下几种类型: JDBC-ODBC桥接驱动程序 JDBC-原始数据库 API驱动程序 JDBC-中间层驱动程序 纯 JDBC 驱动程序

Page 23: 第三部分 Java 语言编程应用篇

23

8.2.4 8.2.4 数据库连接数据库连接

☻在开发在开发 JavaJava 的各种应用程序中,经的各种应用程序中,经常要访问数据库,对数据库中的表进常要访问数据库,对数据库中的表进行各种各样的操作,以满足用户的需行各种各样的操作,以满足用户的需求,我们将根据案例阐述在求,我们将根据案例阐述在 EclipseEclipse中开发中开发 JavaJava 应用程序连接数据库的应用程序连接数据库的一般步骤。一般步骤。

Page 24: 第三部分 Java 语言编程应用篇

24

使用使用 JDBCJDBC 连接数据的连接数据的 55 个步骤个步骤11

☻加载加载 JDBCJDBC 驱动程序。驱动程序。 使用 Class.forName 方法中指定数据库驱动程序的类名,这样自动创建了驱动程序的实例,并注册到了 JDBC 驱动程序管理器。常见数据库加载方式:Class.forName(“comMySQL.jdbc.Driver”); //MySQL

Class.forName(“oracle.jdbc,driver.OracleDriver”); //Oracle

Class.forName(“com.microsoft.jdbc.sqlserver.SQLServer.SQLServerDriver”); //SQLServer

Page 25: 第三部分 Java 语言编程应用篇

25

使用使用 JDBCJDBC 连接数据的连接数据的 55 个步骤个步骤 22

☻建立连接建立连接——定义连接 URL 和建立连接。 成功加载 JDBC 驱动程序之后,必须指定服

务器的位置、指向数据库的 URL 和使用协议,并加入服务器主机名、端口号和数据库名。每个数据驱动程序的文档中,都会提供精确的定义。常用写法如下:String ur1=“jdbc:MySQL://localhost/myDataBase”;String user=“root”;String password=“111111”;Connection con=DriverManager.getConnection(ur1,user,password);

Page 26: 第三部分 Java 语言编程应用篇

26

使用使用 JDBCJDBC 连接数据的连接数据的 55 个步骤个步骤 33

☻创建对象创建对象创建创建 StatementStatement 对象,它是用来向数据库发送对象,它是用来向数据库发送查询和命令。它由查询和命令。它由 ConnectionConnection 的的 createStaemencreateStaementt 方法创建的。方法创建的。

创建对象代码如下: Statement statement=connection.createStatement(); 创建好对象后,就可以进行数据库操作了。常用方法: executeQuer—— 查询并在 ResultSet中返回数据。 excuteUpdate—— 执行 Update/Insert/Delete命令。 .........

Page 27: 第三部分 Java 语言编程应用篇

27

使用使用 JDBCJDBC 连接数据的连接数据的 55 个步骤个步骤 4, 54, 5

☻结果处理结果处理处理结果最简单方式是使用 ResultSet 的 next

方法在表中移动,每次移动一行。

☻关闭连接关闭连接关闭数据库连接。con.close();关闭连接同时,还自动关闭对应的 Statement

和 ResultSet 对象。

Page 28: 第三部分 Java 语言编程应用篇

28

☻该程序运行后将在该程序运行后将在 MySQLMySQL 数据库服务器数据库服务器 TestTest 数数据库中创建表据库中创建表 student, student, 同时利用程序实现同时利用程序实现 55 条记录条记录的录入,程序运行结果如下图所示。的录入,程序运行结果如下图所示。

【【综合案例综合案例 8-18-1】】JavaJava 程序在程序在 MySQLMySQL 数据库中创建表数据库中创建表 student,student, 并向其中输入数并向其中输入数据。据。

Page 29: 第三部分 Java 语言编程应用篇

29

实现代码实现代码 首先在首先在 EclipseEclipse 资源管理窗口中创建项目资源管理窗口中创建项目 ConnectMySConnectMySql,ql, 在该目录下创建文件夹在该目录下创建文件夹 ValidateValidate ,在该目录下创建,在该目录下创建 CConnectToMySqlTest.JavaonnectToMySqlTest.Java 文件,输入源代码。文件,输入源代码。

package validate;import java.sql.*;

public class DataBaseTest {public static Connection getConnection() throws SQLException,java.lang.ClassNotFoundException { String url = "jdbc:mysql://localhost:3306/test"; //取得连接的 url Class.forName("com.mysql.jdbc.Driver"); //加载 MySQL 的 jdbc驱动 String userName = "root"; // 使用能访问MySQL 数据库的用户名 root String password = "mysql"; // 使用口令 Connection con = DriverManager.getConnection(url, userName, password);

//打开数据库连接 return con; }

8-1-1

Page 30: 第三部分 Java 语言编程应用篇

30

public static void main(String args[]) { try { Connection con = getConnection(); //取得数据库的连接 Statement sql = con.createStatement(); //创建一个声明,用来执行 sql 语句 sql.executeUpdate("drop table if exists Goods"); // 如存在同名数据库则删除 sql.executeUpdate("create table goods(bmbh int not null auto_increment,bmmc varchar(30) not null default 'bmmc',bmyj int not null default 60,primary key (bmbh));"); //向表中插入数据 sql.executeUpdate("insert goods values(1001,' 服装一部 ',842511)"); sql.executeUpdate("insert goods values(1002,' 服装二部 ',796519)"); sql.executeUpdate("insert goods values(1003,'电器一部 ',328923)"); sql.executeUpdate("insert goods values(1004,'电器二部 ',977666)"); sql.executeUpdate("insert goods values(1005,'日用品部 ',765348)"); String query = "select * from Goods"; // 执行查询数据库的 sql 语句 ResultSet result = sql.executeQuery(query); //返回一个结果集

8-1-2

Page 31: 第三部分 Java 语言编程应用篇

31

System.out.println("Goods表中的数据如下 :"); System.out.println(" 部门编号 " + " " + "部门名称 " + " " + "部门业绩 ");

while (result.next()) { int number = result.getInt("bmbh"); //取得数据库中的数据 String name = result.getString("bmmc"); //取得数据库中的数据 String javaScore = result.getString("bmyj"); //取得数据库中的数据 System.out.println(" ------------------------"); System.out.println(" " + number + " " + name + " " + javaScore); } System.out.println(" ------------------------"); sql.close(); con.close(); //关闭声明和连接 }catch (java.lang.ClassNotFoundException e) { //异常处理 System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } catch (SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); //显示数据库连接错误或者查询错误 } }} 8-1-3

Page 32: 第三部分 Java 语言编程应用篇

32

数据库连接数据库连接 JDBCJDBC 技术连接到各类数据库一般有技术连接到各类数据库一般有 55 个步骤:个步骤:☻首先要在应用程序中加载首先要在应用程序中加载 JDBCJDBC 驱动程序。通常使驱动程序。通常使

用用 Class.forName()Class.forName() 方法加载,需要注意的一点就是方法加载,需要注意的一点就是要设好类路径要设好类路径 classpathclasspath ,确保,确保 JDBCJDBC 驱动在类路径驱动在类路径中。不同的数据库加载驱动程序的方法不尽相同。中。不同的数据库加载驱动程序的方法不尽相同。

例中加载的例中加载的 MySqlMySql 的语句是:的语句是: Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.jdbc.Driver"); //// 加载加载 MySQLMySQL 的的 jdbcjdbc 驱动驱动 新建项目后,在写程序前先把MySQL 的驱动包导入到

工程中去! 右击项目名称—单击属性—单击 java 构建路径—单击库—添加外部 JAR— 选择 MySQL 的驱动包——确定。

Page 33: 第三部分 Java 语言编程应用篇

33

☻ 成功加载成功加载 JDBCJDBC 驱动程序后,负责管理驱动程序后,负责管理 JDBCJDBC 驱动驱动程序的类程序的类 DriverManagerDriverManager会识别加载的驱动程序。会识别加载的驱动程序。

用用 DriverManagerDriverManager 的方法的方法 getConnection()getConnection() 来创建一来创建一个数据库连接类的实例。该方法以一个数据库的个数据库连接类的实例。该方法以一个数据库的 StriStringng 类型的类型的 URLURL 为参数,返回一个连接数据库的接口为参数,返回一个连接数据库的接口类类 ConnectionConnection 。。

例中创建的实例语句是:例中创建的实例语句是:String url = "jdbc:mysql://localhost:3306/test"; //取得连接的 url

String userName = "root";// 使用能访问MySQL 数据库的

用户名 root

String password = "mysql"; // 使用口令Connection con = DriverManager.getConnection(url, userName, password); //打开数据库连接

Page 34: 第三部分 Java 语言编程应用篇

34

☻获取获取 ConnectionConnection 对象以后,可以用对象以后,可以用 ConnectionConnection 对象对象的方法创建一个的方法创建一个 StatementStatement 对象的实例。对象的实例。 StatementStatement

对象可以执行标准的对象可以执行标准的 SQLSQL 语句,用来完成对数据库语句,用来完成对数据库插入、删除或修改等操作。插入、删除或修改等操作。

例中创建的实例语句是:例中创建的实例语句是:Connection con = getConnection();

//取得数据库的连接Statement sql = con.createStatement();

//创建一个声明,用来执行 sql 语句

Page 35: 第三部分 Java 语言编程应用篇

35

☻返回的结果及对象返回的结果及对象 ResultSetResultSet 包含一些用来从结果集包含一些用来从结果集中获取数据并保存到中获取数据并保存到 JavaJava变量中的方法。利用此方变量中的方法。利用此方法可以将查询所得的数据保存到变量中,以便以某法可以将查询所得的数据保存到变量中,以便以某种格式输出给用户。种格式输出给用户。

String query = "select * from student"; String query = "select * from student"; //// 执行查询数据库的执行查询数据库的 sqlsql 语句 语句 ResultSet result = sql.executeQuery(query); ResultSet result = sql.executeQuery(query);

//// 返回一个结果集返回一个结果集☻ 使用与数据库相关的对象非常耗内存,因此在数据使用与数据库相关的对象非常耗内存,因此在数据

库访问后要关闭与数据库的连接,同时还应该关闭库访问后要关闭与数据库的连接,同时还应该关闭 SStatementtatement 对象。两个对象可以分别使用关闭连接的对象。两个对象可以分别使用关闭连接的方法方法 closeclose 。。

sql.close();sql.close(); //// 关闭声明关闭声明 con.close();con.close(); //// 关闭连接关闭连接

Page 36: 第三部分 Java 语言编程应用篇

36

8.3 8.3 数据库应用系统开发数据库应用系统开发 8.3.1 8.3.1 基于基于 MySQLMySQL 数据库应用系统的开发数据库应用系统的开发知识学习要求掌握为:知识学习要求掌握为: 本节将通过一个简单的应用案例说明在本节将通过一个简单的应用案例说明在 EclipseEclipse 中中开发连接开发连接 MySQLMySQL 数据库的应用程序基本步骤;掌数据库的应用程序基本步骤;掌握握 EclipseEclipse 中应用程序构建路径的配置及应用程序数中应用程序构建路径的配置及应用程序数据环境的配置。据环境的配置。

【综合案例【综合案例 8-28-2】】 JavaJava 应用程序连接应用程序连接 MySQLMySQL 数据数据库进行用户身份验证库进行用户身份验证

Page 37: 第三部分 Java 语言编程应用篇

37

【综合案例【综合案例 8-28-2 】】☻JavaJava 应用程序连接应用程序连接 MySQLMySQL 数据库进行用户身份验证数据库进行用户身份验证

运行后出现如图 1 所示的“用户身份验证”窗口; 输入信息后单击“登录”按钮,程序将开始连接数据

库,并执行身份验证业务逻辑。 身份验证通过后将弹出如图 2 对话框,提示登陆成功,否则弹出如图 3 所示,说明非法登陆。单击退出按钮

将退出用户身份验证窗口。

图 1

图 2图 3

Page 38: 第三部分 Java 语言编程应用篇

38

实现代码实现代码 首先在 Eclipse中建立一个名为“ ConnectMySql” 的新项目,在项目里创建一个名为 UserLogin 的类,向类中加入如下代码。

package validate;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;

public class UserLogin extends JFrame implements ActionListener{ JPanel panel1 = new JPanel(); JLabel label = new JLabel("请输入用户名: "); JLabel labe3 = new JLabel(); JTextField userName = new JTextField(""); // 输入用户名的文本框 JLabel labe2 = new JLabel("请输入密码: "); JPasswordField userPassword = new JPasswordField("");

// 输入密码的密码框 JButton button1 = new JButton("登录 "); JButton button2 = new JButton("退出 "); 8-2-1

Page 39: 第三部分 Java 语言编程应用篇

39

public UserLogin () { super(" 用户身份验证 "); //调用父类构造方法 button1.addActionListener(this); // 为 button1 注册事件监听器 this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));

//定义程序窗口布局 panel1.setLayout(new GridLayout(5,1,4,4)); //定义面板布局 this.getContentPane(); add(panel1); panel1.add(label); panel1.add(userName); panel1.add(labe2); panel1.add(userPassword); panel1.add(button1); panel1.add(button2); panel1.add(labe3); button2.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e) { dispose() ; } } ); // button2 为定义事件监

听对象 this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0); }}); setSize(300,150); setVisible(true); }

8-2-2

Page 40: 第三部分 Java 语言编程应用篇

40

public void actionPerformed(ActionEvent e) { try{ Class.forName("org.gjt.mm.mysql.Driver");

//MySQL 数据库驱动程序加载 String strCon = "jdbc:mysql://localhost/test"; Connection conn=DriverManager.getConnection(strCon,"root","mysql"); Statement stmt=conn.createStatement(); // 执行查询数据库的 SQL 语句 String sql = "select * from account where username='" + userName.getText() + "'"; sql += " and userPassword='" + userPassword.getText() + "'";

//SQL 查询语句 ResultSet rs=stmt.executeQuery( sql ); //返回一个结果集 if( rs.next() )

labe3.setText("欢迎您登陆本系统 "); //身份验证通过 else

labe3.setText(" 非法用户 "); } //身份验证没有通过 catch(final Exception ex){ ex.printStackTrace(); } } public static void main(final String[] args) {new UserLogin(); } }

8-2-3

Page 41: 第三部分 Java 语言编程应用篇

41

配置构建路径配置构建路径

☻案例中由于要访问案例中由于要访问MySQLMySQL 数据库,需要数据库,需要 JDBJDB

CC 驱动程序。驱动程序。☻下载免费下载免费 MySQLMySQL 数据库的数据库的 JDBCJDBC 驱动程序,驱动程序,地址同前:地址同前:http://www.mysql.com/download/index.htmlhttp://www.mysql.com/download/index.html。。

☻采用的驱动程序压缩包是:采用的驱动程序压缩包是:mysql-connector-Java-3.0.17.zipmysql-connector-Java-3.0.17.zip ;;解压到解压到 ““ C:\eclipse\JDBCC:\eclipse\JDBC 驱动程序驱动程序 \MySQL”\MySQL” 目录目录下。下。

Page 42: 第三部分 Java 语言编程应用篇

42图图 8-37 8-37 图图 8-388-38

将下载驱动程序包加入到将下载驱动程序包加入到 JavaJava 构建路径中,首先在包资构建路径中,首先在包资源管理器中右键单击项目“源管理器中右键单击项目“ ConnectMySql”ConnectMySql” ,在弹出的菜,在弹出的菜单中选择单中选择 "" 构建路径构建路径 "" 的子菜单的子菜单 "" 配置构建路径配置构建路径 "" ,弹出,弹出项目“项目“ ConnectMySql”ConnectMySql” 的属性设置对话框。接着在弹出的的属性设置对话框。接着在弹出的对话框的左边窗口选择“对话框的左边窗口选择“ JavaJava 构建路径”,在右边出现的构建路径”,在右边出现的““ JavaJava 构建路径”窗口中点构建路径”窗口中点 "" 库库 "" 选项卡,如图选项卡,如图 8-378-37 所所示。示。

Page 43: 第三部分 Java 语言编程应用篇

43

点击窗口右边的 “添加外点击窗口右边的 “添加外部部 JAR”JAR”按钮,在弹出的按钮,在弹出的 JARJAR

文件对话框中找到包文件:文件对话框中找到包文件:mysql-connector-Java-3.0.17-bin.jarmysql-connector-Java-3.0.17-bin.jar

此包位于文件夹此包位于文件夹 C:\eclipse\JDBCC:\eclipse\JDBC

驱动程序驱动程序 \MySQL\MySQL 中,中,如图如图 8-388-38 。。 选中驱动程序包后,点击选中驱动程序包后,点击“打开”按钮,这样“打开”按钮,这样 JDBCJDBC 驱驱动就添加到动就添加到 JavaJava 构建路径中了,构建路径中了,如图如图 8-398-39 所示。最后点击属性所示。最后点击属性设置对话框下方的“确定”按设置对话框下方的“确定”按钮关闭对话框。钮关闭对话框。 图 8-39

Page 44: 第三部分 Java 语言编程应用篇

44

应用程序数据环境的配置应用程序数据环境的配置 最后在最后在 MySQLMySQL 数据库中创建程序需要访问的数据源数据库中创建程序需要访问的数据源 ttest,est, 并在其中创建数据表并在其中创建数据表 validate,validate, 具体实现方法如下:具体实现方法如下: 依次打开开始菜单 所有程序 依次打开开始菜单 所有程序 MySQL MySQL SerMySQL MySQL Server 5.0 MySQL Command Line Client,ver 5.0 MySQL Command Line Client, 弹出如下命令行弹出如下命令行窗口。窗口。

Page 45: 第三部分 Java 语言编程应用篇

45

8.3.2 8.3.2 基于基于 SQL ServerSQL Server 数据库系统的开数据库系统的开发发

知识学习要求掌握为:知识学习要求掌握为:

掌握掌握 EclipseEclipse 中中 JavaJava 应用程序连接应用程序连接到到 SQL ServerSQL Server 数据库的基本步骤;掌数据库的基本步骤;掌握数据库应用程序开发的一般过程,握数据库应用程序开发的一般过程,熟悉熟悉 EclipseEclipse 中构建路径的配置以及应中构建路径的配置以及应用程序数据环境的配置。用程序数据环境的配置。

Page 46: 第三部分 Java 语言编程应用篇

46

【综合案例【综合案例 8-38-3 】】 超市管理信息系统中超市管理信息系统中 JavaJava 程序连接程序连接 SQL ServerSQL Server 数据数据库实现产品信息录入。库实现产品信息录入。 该程序借助于该程序借助于 Java APIJava API中提供的图形用户界面开发中提供的图形用户界面开发工具实现身份验证的桌面应用程序,在产品订购录入窗工具实现身份验证的桌面应用程序,在产品订购录入窗口输入产品信息,单击确定,即录入信息到产品库中,口输入产品信息,单击确定,即录入信息到产品库中,程序执行界面效果如下。程序执行界面效果如下。

Page 47: 第三部分 Java 语言编程应用篇

47

配置构建路径配置构建路径☻案例中由于要访问案例中由于要访问MySQLMySQL 数据库,需要数据库,需要 JDJD

BCBC 驱动程序。驱动程序。☻下载下载 SQL ServerSQL Server 数据库的数据库的 JDBCJDBC 驱动。驱动。☻将下载的驱动程序压缩包解压缩到”将下载的驱动程序压缩包解压缩到” C:\ecliC:\ecli

pse\JDBCpse\JDBC 驱动程序驱动程序 \SQL Server”\SQL Server” 目录中,目录中,包含三个文件: 包含三个文件: msbase.jar,sql,mssqlserver,.msbase.jar,sql,mssqlserver,.

jar,msutil.jar. jar,msutil.jar.

Page 48: 第三部分 Java 语言编程应用篇

48

图 8-45 图 8-46

将下载驱动程序包加入到将下载驱动程序包加入到 JavaJava 构建路径中,首先在包资构建路径中,首先在包资源管理器中右键单击项目“源管理器中右键单击项目“ ConnectSqlServer”ConnectSqlServer” ,在弹出的,在弹出的菜单中选择菜单中选择 "" 构建路径构建路径 "" 的子菜单的子菜单 "" 配置构建路径配置构建路径 "" ,弹出,弹出项目“项目“ ConnectSqlServer”ConnectSqlServer” 的属性设置对话框。接着在弹出的属性设置对话框。接着在弹出的对话框的左边窗口选择“的对话框的左边窗口选择“ JavaJava 构建路径”,在右边出现构建路径”,在右边出现的“的“ JavaJava 构建路径”窗口中点构建路径”窗口中点 "" 库库 "" 选项卡,如图选项卡,如图 8-458-45 所所示。示。

Page 49: 第三部分 Java 语言编程应用篇

49

点击窗口右边的点击窗口右边的 ""添加外部添加外部 JAR"JAR"按钮,在弹出的按钮,在弹出的 JARJAR文件对话框中找到包文件,此包位于文件夹”文件对话框中找到包文件,此包位于文件夹” C:\eclipse\JDC:\eclipse\JDBCBC 驱动程序驱动程序 \SQL Server”\SQL Server” 中,如图中,如图 8-468-46 所示。所示。 选中驱动程序包后,点击选中驱动程序包后,点击 ""打开打开 ""按钮,这样按钮,这样 JDBCJDBC 驱动驱动就添加到就添加到 JavaJava 构建路径中了,如图构建路径中了,如图 8-478-47 所示。最后点击属所示。最后点击属性设置对话框下方的性设置对话框下方的 "" 确定确定 ""按钮关闭对话框。按钮关闭对话框。

图 8-47 图 8-48

Page 50: 第三部分 Java 语言编程应用篇

50

应用程序数据环境的配置应用程序数据环境的配置 要使程序正常运行,还需要在要使程序正常运行,还需要在 Microsoft SQL ServeMicrosoft SQL Serverr中创建数据表,依次单击「开始」菜单 程序 中创建数据表,依次单击「开始」菜单 程序 MicMicrosoft SQL Server rosoft SQL Server 企业管理器,打开企业管理器,打开 SQL Server ESQL Server Enterprise Managernterprise Manager 窗口如图窗口如图 8-488-48 所示。所示。 在在 mastermaster 数据库中创建表数据库中创建表 Buyer_tableBuyer_table ,表结构如,表结构如图图 8-498-49 所示。所示。

图 8-49 图 8-50

Page 51: 第三部分 Java 语言编程应用篇

51

8.4 SQLExplorer8.4 SQLExplorer 数据库插件技术数据库插件技术☻SQLExplorerSQLExplorer 是是 EclipseEclipse 集成开发环境的一种集成开发环境的一种

数据库管理插件,它用于从数据库管理插件,它用于从 EclipseEclipse 连接到一连接到一个数据库。这个数据库插件将数据库的基本个数据库。这个数据库插件将数据库的基本操作集成到操作集成到 EclipseEclipse 开发环境中,并且用图形开发环境中,并且用图形化操作界面代替了原始数据库系统枯燥的命化操作界面代替了原始数据库系统枯燥的命令交互方式,便于用户实现对数据的管理。令交互方式,便于用户实现对数据的管理。

☻知识学习要求掌握为:知识学习要求掌握为:应熟练掌握利用应熟练掌握利用 SQLExplorerSQLExplorer 创建数据表、创建数据表、显示表结构、查看表中数据,以及添加、更显示表结构、查看表中数据,以及添加、更新、插入或删除数据表数据等基本操作。新、插入或删除数据表数据等基本操作。

Page 52: 第三部分 Java 语言编程应用篇

52

8.4.1.SQLExplorer8.4.1.SQLExplorer 插件的下载与安装插件的下载与安装

☻ SQLExplorerSQLExplorer 的免费下载地址是 的免费下载地址是 ::

http://http://sourceforge.net/projects/eclipsesqlsourceforge.net/projects/eclipsesql,, 当前最新版本是当前最新版本是 sqlexplorer_plugin-3.5.0.RC5sqlexplorer_plugin-3.5.0.RC5 ,,☻ 下载对应的文件:下载对应的文件: 将其解压缩到任意指定的目录,将该目录下的将其解压缩到任意指定的目录,将该目录下的 plugplug

insins 目录和目录和 featuresfeatures 目录下的内容对应复制到目录下的内容对应复制到 EclipEclip

sese 安装目录下的安装目录下的 pluginsplugins 目录和目录和 featuresfeatures 目录中。目录中。

Page 53: 第三部分 Java 语言编程应用篇

53

☻ 在桌面在桌面 EcliEclipsepse 快捷图快捷图标属性中,标属性中,加入加入 -clean-clean命令行,完命令行,完成缓冲区重成缓冲区重置操作,然置操作,然后重新启动后重新启动EclipseEclipse 即可。即可。

Page 54: 第三部分 Java 语言编程应用篇

54

☻重新启动重新启动 EclipseEclipse即可,选择打开即可,选择打开透视图的“其透视图的“其他”选项,将会他”选项,将会打开透视图对话打开透视图对话框,如图所示。框,如图所示。选择选择 SQL ExplorerSQL Explorer选项中选项中 connectionsconnections ,,单击确定按钮。单击确定按钮。

Page 55: 第三部分 Java 语言编程应用篇

55

☻为了配置为了配置 MySQMySQLL 驱动,在驱动,在 MySQL MySQL ConnectConnect 选项上单选项上单击鼠标右键,在弹击鼠标右键,在弹出的快捷菜单中选出的快捷菜单中选择择 New connect ProNew connect Profilefile 命令,可以打开命令,可以打开如图所示的如图所示的 Create Create New Connect ProfilNew Connect Profil

e e 对话框。对话框。

Page 56: 第三部分 Java 语言编程应用篇

56

Page 57: 第三部分 Java 语言编程应用篇

57

常用数据库的驱动类、连接常用数据库的驱动类、连接 URLURL 和驱动和驱动 .jar .jar 文文件件 数据库数据库系统系统 Driver ClassDriver Class URLURL 库文件库文件

IBM DB2IBM DB2COM.ibm.db2.jdbc.aCOM.ibm.db2.jdbc.app.DB2Driverpp.DB2Driver

Jdbc:db2:<database>Jdbc:db2:<database> db2Java.zipdb2Java.zip

SybaseSybaseCom.sybase.jdbc2.jdbCom.sybase.jdbc2.jdbc.SybDriverc.SybDriver

Jdbc:Sybase:Tds:<host>:<Jdbc:Sybase:Tds:<host>:<port>/<database>port>/<database>

Jconn2.jarJconn2.jar

OracleOracleOracle.jdbc.driver.OrOracle.jdbc.driver.OracledDiveracledDiver

Jdbc:oracle:thin:@<host>:Jdbc:oracle:thin:@<host>:<port>:<sid><port>:<sid>

Classes12.zipClasses12.zip

SQLServerSQLServerCom.microsoft.jdbc.sCom.microsoft.jdbc.sqlserver.SQLServerDqlserver.SQLServerDriverriver

Jdbc:Microsoft:sqlserver://Jdbc:Microsoft:sqlserver://localhost:1433localhost:1433

Mssqlserver.Mssqlserver.jar,msbase.jjar,msbase.jar,msutil.jarar,msutil.jar

表 8-1

Page 58: 第三部分 Java 语言编程应用篇

58

8.4.2 SQLExplorer8.4.2 SQLExplorer 基本操作基本操作

SQL ExplorerSQL Explorer 插件提供对图形化插件提供对图形化界面操作工具,通过该插件可以方便界面操作工具,通过该插件可以方便地实现对数据库的操作,给那些不习地实现对数据库的操作,给那些不习惯使用命令行的用户带来了极大的方惯使用命令行的用户带来了极大的方便。便。

Page 59: 第三部分 Java 语言编程应用篇

59

【综合案例【综合案例 8-48-4 】】☻ 在 Eclipse中利用插件 SQLExplorer 对

MySQL 数据库 Test中表 score 进行如下操作: 查看数据库表查看数据库表 scorescore 结构结构 ;; 获得创建表获得创建表 scorescore 的的 SQLSQL 脚本脚本 ;; 查看数据库表查看数据库表 scorescore内容内容 ;; 更新数据库表更新数据库表 scorescore中内容中内容 ;; 向数据表向数据表 scorescore 插入记录:学插入记录:学

号,号, 20061511062006151106 ;姓名,马莹;成;姓名,马莹;成绩,绩, 8989 ;;

删除数据表删除数据表 scorescore中姓名为李华的记录内容中姓名为李华的记录内容。。

Page 60: 第三部分 Java 语言编程应用篇

60

☻首先在首先在 EclipseEclipse 的的 SQLExplorerSQLExplorer 视窗中选择视窗中选择 DatabDatabase Structure Viewase Structure View 选项卡。为了显示表选项卡。为了显示表 score score 的结的结构,在构,在 Database Structure ViewDatabase Structure View 中依次选择"中依次选择" DatabDatabasease"、""、" EmployeeDBEmployeeDB "、""、" tabletable """" scorescore"选"选项。如图项。如图 8-578-57 所示的表所示的表 scorescore 的结构。的结构。

查看数据库结构查看数据库结构

Page 61: 第三部分 Java 语言编程应用篇

61

获得获得 SQLSQL脚本脚本 ☻要想得到创建表格的要想得到创建表格的 SQLSQL ,在表结点单击鼠,在表结点单击鼠标右键,并且在弹出的快捷菜单中选择标右键,并且在弹出的快捷菜单中选择 Create Create table script table script 命令,将生成创建被选表格的命令,将生成创建被选表格的 SQSQLL脚本,并将其显示在脚本,并将其显示在 SQLExplorerSQLExplorer视窗的视窗的 SSQL EditorQL Editor中,创建的中,创建的 SqlSql脚本如下所示。脚本如下所示。

CREATE TABLE `score` (CREATE TABLE `score` ( `StudentID` int(11) NOT NULL,`StudentID` int(11) NOT NULL, `StudentName` varchar(20) NOT NULL default '',`StudentName` varchar(20) NOT NULL default '', `JAVAGrade` int(11) NOT NULL default '60',`JAVAGrade` int(11) NOT NULL default '60', PRIMARY KEY (`StudentID`)PRIMARY KEY (`StudentID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Page 62: 第三部分 Java 语言编程应用篇

62

查询数据表记录查询数据表记录

☻要想显示默认的要想显示默认的 SelectSelect 查询语句,在表结点单查询语句,在表结点单击鼠标右键,并且在弹的快捷菜单中选择击鼠标右键,并且在弹的快捷菜单中选择 GenerGenerate Select in Sql Editorate Select in Sql Editor 命令。系统将在命令。系统将在 SQL EdSQL Editoritor中显示从表中显示从表 scorescore中提取数据的默认查询语中提取数据的默认查询语句,句, SqlSql脚本如下所示。脚本如下所示。

SELECT StudentID, StudentName, JAVAGrade FROM `test`.`score`SELECT StudentID, StudentName, JAVAGrade FROM `test`.`score`

☻单击单击 Execute SQLExecute SQL脚本。由修改后的脚本。由修改后的 SelectSelect 语语句得到的数据显示在句得到的数据显示在 SQL Results SQL Results 选项卡中,选项卡中,如图所示。如图所示。

Page 63: 第三部分 Java 语言编程应用篇

63

Page 64: 第三部分 Java 语言编程应用篇

64

更新数据表记录更新数据表记录 ☻在在 SQL Editor SQL Editor 中输入中输入 updateupdate 语句以更新数据表语句以更新数据表中指定的记录,例如,执行下列中指定的记录,例如,执行下列 SQLSQL 语句:语句:

UPDATE `test`.`score` SET StudentName=“UPDATE `test`.`score` SET StudentName=“ 王盟” 王盟” WHERE WHERE StudentName=“StudentName=“ 黄萌”黄萌” 即可修改表中即可修改表中 scorescore原记录姓名为黄萌更新为王原记录姓名为黄萌更新为王盟。如图所示。 盟。如图所示。

Page 65: 第三部分 Java 语言编程应用篇

65

向数据表中插入记录向数据表中插入记录☻在在 SQL Editor SQL Editor 中输入中输入 insertinsert 语句将会数据表语句将会数据表中插入指定记录,例如,执行下列中插入指定记录,例如,执行下列 SQLSQL 语句:语句:

INSERT INTO `test`.`score` VALUES(“2006151106”,“INSERT INTO `test`.`score` VALUES(“2006151106”,“ 马莹”马莹” ,8,89)9)

即可表即可表 scorescore中增加马莹的学生记录。结果如中增加马莹的学生记录。结果如图所示。图所示。

Page 66: 第三部分 Java 语言编程应用篇

66

删除数据表中记录删除数据表中记录 ☻在在 SQL Editor SQL Editor 中使用中使用 DeleteDelete 语句将会删除指定语句将会删除指定记录,例如,执行下列记录,例如,执行下列 SQLSQL 语句:语句:

DELETE FROM `test`.`score` WHERE studentname=“DELETE FROM `test`.`score` WHERE studentname=“ 李华”李华” 即可删除即可删除 scorescore表中姓名为表中姓名为 ""李华李华 "" 同学的记录。同学的记录。

结果如图所示。结果如图所示。

Page 67: 第三部分 Java 语言编程应用篇

67

8.5 8.5 小结小结 11

☻ 数据库安装与配置数据库安装与配置 MySQL 数据库安装 SQL SERVER 2000 数据库安装

☻ 数据库连接数据库连接 MySQL 数据库配置 SQL SERVER 2000 数据库配置

☻ 数据库连接数据库连接 JDBC( Java DataBase Connectivity) JDBC 连接数据的 5 个步骤

Page 68: 第三部分 Java 语言编程应用篇

68

8.5 8.5 小结小结 22

☻ 数据库应用系统开发数据库应用系统开发 基于 MySQL 数据库应用系统的开发 基于 SQL SERVER 数据库应用系统开发

☻ SQLExplorerSQLExplorer 数据库插件技术数据库插件技术 SQLExplorer 插件的下载与安装 SQLExplorer 基本操作

Page 69: 第三部分 Java 语言编程应用篇

69

习题8习题8

一、简答题一、简答题 11,, 22 ,, 33二、编程题二、编程题