部分Java语言编程应用篇.ppt
第三部分 Java语言编程应用篇,第8章 Java语言的数据库处理技术,学习目的,熟悉MySQL和SQL Server数据库的安装、配置和基本操作;了解JDBC技术的发展、特点及常用驱动程序类型;掌握Java应用程序连接到数据库的基本步骤;进一步掌握Java数据库应用程序的开发方法;熟练掌握SQLExplorer数据库插件的安装配置及基本操作。,主要内容,数据库安装与配置 数据库连接 数据库应用系统开发 SQLExplorer数据库插件技术,8.1数据库安装与配置,常用数据库MySQL和SQL Server 2000的特点和性能,数据库在Windows操作系统环境下的安装及配置,为Java程序的数据库处理搭建了数据环境。知识学习要求掌握为:熟练掌握Windows环境下MySql数据库和SQL Server 2000数据库的安装及配置。,8.1.1 MySQL数据库简介及安装配置,MySQL数据库是一个多线程的,结构化查询语言(SQL)数据库服务器。MySQL是一个完全免费的数据库。MySQL数据库可以自由用于个人或商业用途。MySQL 的执行性能非常高,运行速度非常快,并且非常容易使用。MySQL是客户机和服务器模式的分布式系统,由SQL 服务器、客户端、管理工具和应用程序等一整套工具组成。目前最新版本可以作为复杂情况以及大负荷数据库解决方案的平台。,可以在MySQL的官方网站免费下载不同版本的MySQL的安装程序,下载MySQL安装程序的网址如下所示:本章所使用的为支持 Windows系列操作系统的MySQL 5.0版本,对应安装程序压缩包的文件名为,安装MySQL数据库具体操作步骤如下。,MySQL数据库安装,MySQL数据库系统的安装,安装类型Setup Type选择,选择要安装的组件,设置待安装数据库系统的位置,新建用户账户以及进行注册,MySQL数据库配置,进入配置对应的数据库服务器状态服务器实例配置选择服务器类型的配置方式确认数据库对应文件的安装位置设置对应的网络传输协议 选择对应的字符集 安全性设置 完成安装,进入配置对应的数据库服务器状态,服务器实例配置,选择服务器类型的配置方式,确认数据库对应文件的安装位置设置对应的网络传输协议默认端口号3306,选择对应的字符集,安全性设置 完成安装,8.1.2 SQL SERVER 2000数据库简介及安装,SQL Server 2000是一个功能完整全面的数据库产品。SQL Server 2000全面支持Web功能的数据库解决方案。SQL Server2000还在可伸缩性与可靠性方面保持着多项测试纪录。无论以应用程序开发速度还是以事务处理运行速度来衡量,SQL Server 2000都堪称最为快捷的数据库系统。课后将以Windows 2003 Server操作系统为例,练习企业版SQL Server 2000的安装过程。,8.2 数据库连接,主要介绍JDBC技术的诞生、特点及常用驱动程序类型。以实际案例为基础,详细介绍Java应用程序访问数据库的一般步骤。知识重点为:掌握Java应用程序利用JDBC技术连接数据库一般步骤。熟练掌握Java应用程序连接到各种数据库的配置。,8.2.1 JDBC诞生背景,自从Java语言于1995年5月正式公布以来,Java风靡全球。出现大量的用Java语言编写的程序,其中也包括数据库应用程序。由于没有一个Java语言的API,编程人员不得不在Java程序中加入C语言的ODBC函数调用。这就使很多Java的优秀特性无法充分发挥,比如平台无关性、面向对象特性等。随着越来越多的编程人员对Java语言的日益喜爱,越来越多的公司在Java程序开发上投入的精力日益增加,对Java语言接口的访问数据库的API的要求越来越强烈。也由于ODBC的有其不足之处,比如它并不容易使用,没有面向对象的特性等等,SUN公司决定开发以Java语言为接口的数据库应用程序开发接口。在JDK1.X版本中,JDBC只是一个可选部件,到了JDK1.1公布时,SQL类包(也就是JDBC API)就成为Java语言的标准部件。,8.2.2 JDBC技术概述,JDBC(Java DataBase Connectivity)称为Java数据库连接。JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序接口)。它由一些Java语言写的类、界面组成。,8.2.3 JDBC驱动程序的类型,JDBC的数据库访问要通过JDBC驱动程序来完成,JDBC驱动程序在Java应用程序与物理数据库之间架起了一座桥梁。JDBC驱动分为以下几种类型:JDBC-ODBC桥接驱动程序 JDBC-原始数据库API驱动程序 JDBC-中间层驱动程序 纯JDBC驱动程序,8.2.4 数据库连接,在开发Java的各种应用程序中,经常要访问数据库,对数据库中的表进行各种各样的操作,以满足用户的需求,我们将根据案例阐述在Eclipse中开发Java应用程序连接数据库的一般步骤。,使用JDBC连接数据的5个步骤1,加载JDBC驱动程序。使用Class.forName方法中指定数据库驱动程序的类名,这样自动创建了驱动程序的实例,并注册到了JDBC驱动程序管理器。常见数据库加载方式:”);/MySQLClass.forName(“oracle.jdbc,driver.OracleDriver”);/Oracle”);/SQLServer,使用JDBC连接数据的5个步骤2,建立连接定义连接URL和建立连接。成功加载JDBC驱动程序之后,必须指定服务器的位置、指向数据库的URL和使用协议,并加入服务器主机名、端口号和数据库名。每个数据驱动程序的文档中,都会提供精确的定义。,常用写法如下:String ur1=“jdbc:MySQL:/localhost/myDataBase”;String user=“root”;String password=“111111”;Connection con=DriverManager.getConnection(ur1,user,password);,使用JDBC连接数据的5个步骤3,创建对象创建Statement对象,它是用来向数据库发送查询和命令。它由Connection的createStaement方法创建的。创建对象代码如下:Statement statement=connection.createStatement();创建好对象后,就可以进行数据库操作了。常用方法:executeQuer查询并在ResultSet中返回数据。excuteUpdate执行Update/Insert/Delete命令。,使用JDBC连接数据的5个步骤4,5,结果处理处理结果最简单方式是使用ResultSet的next方法在表中移动,每次移动一行。关闭连接关闭数据库连接。con.close();关闭连接同时,还自动关闭对应的Statement 和ResultSet对象。,该程序运行后将在MySQL数据库服务器Test数据库中创建表student,同时利用程序实现5条记录的录入,程序运行结果如下图所示。,【综合案例8-1】,Java程序在MySQL数据库中创建表student,并向其中输入数据。,实现代码,首先在Eclipse资源管理窗口中创建项目ConnectMySql,在该目录下创建文件夹Validate,在该目录下创建ConnectToMySqlTest.Java文件,输入源代码。,package validate;import java.sql.*;public class DataBaseTest public static Connection getConnection()throws String url=jdbc:mysql:/localhost:3306/test;/取得连接的url);/加载MySQL的jdbc驱动 String userName=root;/使用能访问MySQL数据库的用户名root String password=mysql;/使用口令 Connection con=DriverManager.getConnection(url,userName,password);/打开数据库连接 return con;,8-1-1,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,System.out.println(Goods表中的数据如下:);(部门编号+部门名称+部门业绩);while(result.next()int number=result.getInt(bmbh);/取得数据库中的数据 String name=result.getString(bmmc);/取得数据库中的数据 String javaScore=result.getString(bmyj);/取得数据库中的数据(-);(+number+name+javaScore);(-);sql.close();con.close();/关闭声明和连接 catch(e)/异常处理 System.err.print(ClassNotFoundException:);System.err.println(e.getMessage();catch(SQLException ex)System.err.println(SQLException:+ex.getMessage();/显示数据库连接错误或者查询错误,8-1-3,数据库连接,JDBC技术连接到各类数据库一般有5个步骤:首先要在应用程序中加载JDBC驱动程序。通常使用Class.forName()方法加载,需要注意的一点就是要设好类路径classpath,确保JDBC驱动在类路径中。不同的数据库加载驱动程序的方法不尽相同。例中加载的MySql的语句是:);/加载MySQL的jdbc驱动,新建项目后,在写程序前先把MySQL的驱动包导入到工程中去!右击项目名称单击属性单击java构建路径单击库添加外部JAR选择MySQL的驱动包确定。,成功加载JDBC驱动程序后,负责管理JDBC驱动程序的类DriverManager会识别加载的驱动程序。用DriverManager的方法getConnection()来创建一个数据库连接类的实例。该方法以一个数据库的String类型的URL为参数,返回一个连接数据库的接口类Connection。例中创建的实例语句是:String url=jdbc:mysql:/localhost:3306/test;/取得连接的urlString userName=root;/使用能访问MySQL数据库的用户名rootString password=mysql;/使用口令Connection con=DriverManager.getConnection(url,userName,password);/打开数据库连接,获取Connection对象以后,可以用Connection对象的方法创建一个Statement对象的实例。Statement对象可以执行标准的SQL语句,用来完成对数据库插入、删除或修改等操作。例中创建的实例语句是:Connection con=getConnection();/取得数据库的连接Statement sql=con.createStatement();/创建一个声明,用来执行sql语句,返回的结果及对象ResultSet包含一些用来从结果集中获取数据并保存到Java变量中的方法。利用此方法可以将查询所得的数据保存到变量中,以便以某种格式输出给用户。String query=select*from student;/执行查询数据库的sql语句 ResultSet result=sql.executeQuery(query);/返回一个结果集使用与数据库相关的对象非常耗内存,因此在数据库访问后要关闭与数据库的连接,同时还应该关闭Statement对象。两个对象可以分别使用关闭连接的方法close。sql.close();/关闭声明 con.close();/关闭连接,8.3 数据库应用系统开发 8.3.1 基于MySQL数据库应用系统的开发,知识学习要求掌握为:本节将通过一个简单的应用案例说明在Eclipse中开发连接MySQL数据库的应用程序基本步骤;掌握Eclipse中应用程序构建路径的配置及应用程序数据环境的配置。【综合案例8-2】Java应用程序连接MySQL数据库进行用户身份验证,【综合案例8-2】,Java应用程序连接MySQL数据库进行用户身份验证运行后出现如图1所示的“用户身份验证”窗口;输入信息后单击“登录”按钮,程序将开始连接数据库,并执行身份验证业务逻辑。身份验证通过后将弹出如图2对话框,提示登陆成功,否则弹出如图3所示,说明非法登陆。单击退出按钮 将退出用户身份验证窗口。,图1,图2,图3,实现代码,首先在Eclipse中建立一个名为“ConnectMySql”的新项目,在项目里创建一个名为UserLogin的类,向类中加入如下代码。,package validate;import java.awt.*;import.*;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,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,public void actionPerformed(ActionEvent e)try);/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(欢迎您登陆本系统);/身份验证通过 elselabe3.setText(非法用户);/身份验证没有通过 catch(final Exception ex)ex.printStackTrace();public static void main(final String args)new UserLogin();,8-2-3,配置构建路径,案例中由于要访问MySQL数据库,需要JDBC驱动程序。下载免费MySQL数据库的JDBC驱动程序,地址同前:。采用的驱动程序压缩包是:;解压到“C:eclipseJDBC驱动程序MySQL”目录下。,图8-37 图8-38,将下载驱动程序包加入到Java构建路径中,首先在包资源管理器中右键单击项目“ConnectMySql”,在弹出的菜单中选择构建路径的子菜单配置构建路径,弹出项目“ConnectMySql”的属性设置对话框。接着在弹出的对话框的左边窗口选择“Java构建路径”,在右边出现的“Java构建路径”窗口中点库选项卡,如图8-37所示。,点击窗口右边的“添加外部JAR”按钮,在弹出的JAR文件对话框中找到包文件:此包位于文件夹C:eclipseJDBC驱动程序MySQL中,如图8-38。选中驱动程序包后,点击“打开”按钮,这样JDBC驱动就添加到Java构建路径中了,如图8-39所示。最后点击属性设置对话框下方的“确定”按钮关闭对话框。,图8-39,应用程序数据环境的配置,最后在MySQL数据库中创建程序需要访问的数据源test,并在其中创建数据表validate,具体实现方法如下:依次打开开始菜单 所有程序 MySQL MySQL Server 5.0 MySQL Command Line Client,弹出如下命令行窗口。,8.3.2 基于SQL Server数据库系统的开发,知识学习要求掌握为:掌握Eclipse中Java应用程序连接到SQL Server数据库的基本步骤;掌握数据库应用程序开发的一般过程,熟悉Eclipse中构建路径的配置以及应用程序数据环境的配置。,【综合案例8-3】,超市管理信息系统中Java程序连接SQL Server数据库实现产品信息录入。该程序借助于Java API中提供的图形用户界面开发工具实现身份验证的桌面应用程序,在产品订购录入窗口输入产品信息,单击确定,即录入信息到产品库中,程序执行界面效果如下。,配置构建路径,案例中由于要访问MySQL数据库,需要JDBC驱动程序。下载SQL Server数据库的JDBC驱动。将下载的驱动程序压缩包解压缩到”C:eclipseJDBC驱动程序SQL Server”目录中,包含三个文件:msbase.jar,sql,mssqlserver,.jar,msutil.jar.,图8-45 图8-46,将下载驱动程序包加入到Java构建路径中,首先在包资源管理器中右键单击项目“ConnectSqlServer”,在弹出的菜单中选择构建路径的子菜单配置构建路径,弹出项目“ConnectSqlServer”的属性设置对话框。接着在弹出的对话框的左边窗口选择“Java构建路径”,在右边出现的“Java构建路径”窗口中点库选项卡,如图8-45所示。,点击窗口右边的添加外部JAR按钮,在弹出的JAR文件对话框中找到包文件,此包位于文件夹”C:eclipseJDBC驱动程序SQL Server”中,如图8-46所示。选中驱动程序包后,点击打开按钮,这样JDBC驱动就添加到Java构建路径中了,如图8-47所示。最后点击属性设置对话框下方的确定按钮关闭对话框。,图8-47 图8-48,应用程序数据环境的配置,要使程序正常运行,还需要在Microsoft SQL Server中创建数据表,依次单击开始菜单 程序 Microsoft SQL Server 企业管理器,打开SQL Server Enterprise Manager窗口如图8-48所示。在master数据库中创建表Buyer_table,表结构如图8-49所示。,图8-49 图8-50,8.4 SQLExplorer数据库插件技术,SQLExplorer是Eclipse集成开发环境的一种数据库管理插件,它用于从Eclipse连接到一个数据库。这个数据库插件将数据库的基本操作集成到Eclipse开发环境中,并且用图形化操作界面代替了原始数据库系统枯燥的命令交互方式,便于用户实现对数据的管理。知识学习要求掌握为:应熟练掌握利用SQLExplorer创建数据表、显示表结构、查看表中数据,以及添加、更新、插入或删除数据表数据等基本操作。,插件的下载与安装,SQLExplorer的免费下载地址是:http:/当前最新版本是,下载对应的文件:将其解压缩到任意指定的目录,将该目录下的plugins目录和features目录下的内容对应复制到Eclipse安装目录下的plugins目录和features目录中。,在桌面Eclipse快捷图标属性中,加入-clean命令行,完成缓冲区重置操作,然后重新启动Eclipse即可。,重新启动Eclipse即可,选择打开透视图的“其他”选项,将会打开透视图对话框,如图所示。选择SQL Explorer选项中connections,单击确定按钮。,为了配置MySQL驱动,在MySQL Connect选项上单击鼠标右键,在弹出的快捷菜单中选择New connect Profile命令,可以打开如图所示的Create New Connect Profile 对话框。,常用数据库的驱动类、连接URL和驱动.jar 文件,表8-1,8.4.2 SQLExplorer基本操作,SQL Explorer插件提供对图形化界面操作工具,通过该插件可以方便地实现对数据库的操作,给那些不习惯使用命令行的用户带来了极大的方便。,【综合案例8-4】,在Eclipse中利用插件SQLExplorer对MySQL数据库Test中表score进行如下操作:查看数据库表score结构;获得创建表score的SQL脚本;查看数据库表score内容;更新数据库表score中内容;向数据表score插入记录:学号,2006151106;姓名,马莹;成绩,89;删除数据表score中姓名为李华的记录内容。,首先在Eclipse的SQLExplorer视窗中选择Database Structure View选项卡。为了显示表score 的结构,在Database Structure View中依次选择Database、EmployeeDB、tablescore选项。如图8-57所示的表score的结构。,查看数据库结构,获得SQL脚本,要想得到创建表格的SQL,在表结点单击鼠标右键,并且在弹出的快捷菜单中选择Create table script 命令,将生成创建被选表格的SQL脚本,并将其显示在SQLExplorer视窗的SQL Editor中,创建的Sql脚本如下所示。CREATE TABLE score(StudentID int(11)NOT NULL,StudentName varchar(20)NOT NULL default,JAVAGrade int(11)NOT NULL default 60,PRIMARY KEY(StudentID)ENGINE=InnoDB DEFAULT CHARSET=utf8;,查询数据表记录,要想显示默认的Select查询语句,在表结点单击鼠标右键,并且在弹的快捷菜单中选择Generate Select in Sql Editor命令。系统将在SQL Editor中显示从表score中提取数据的默认查询语句,Sql脚本如下所示。SELECT StudentID,StudentName,JAVAGrade FROM test.score单击Execute SQL脚本。由修改后的Select语句得到的数据显示在SQL Results 选项卡中,如图所示。,更新数据表记录,在SQL Editor 中输入update语句以更新数据表中指定的记录,例如,执行下列SQL语句:UPDATE test.score SET StudentName=“王盟”WHERE StudentName=“黄萌”即可修改表中score原记录姓名为黄萌更新为王盟。如图所示。,向数据表中插入记录,在SQL Editor 中输入insert语句将会数据表中插入指定记录,例如,执行下列SQL语句:INSERT INTO test.score VALUES(“2006151106”,“马莹”,89)即可表score中增加马莹的学生记录。结果如图所示。,删除数据表中记录,在SQL Editor 中使用Delete语句将会删除指定记录,例如,执行下列SQL语句:DELETE FROM test.score WHERE studentname=“李华”即可删除score表中姓名为李华同学的记录。结果如图所示。,8.5 小结1,数据库安装与配置 MySQL数据库安装 SQL SERVER 2000数据库安装 数据库连接 MySQL数据库配置 SQL SERVER 2000数据库配置 数据库连接 JDBC(Java DataBase Connectivity)JDBC连接数据的5个步骤,8.5 小结2,数据库应用系统开发 基于MySQL数据库应用系统的开发 基于SQL SERVER 数据库应用系统开发 SQLExplorer数据库插件技术 SQLExplorer插件的下载与安装 SQLExplorer基本操作,习题,一、简答题 1,2,3二、编程题,