第5章Java在数据库中的应用ppt课件全

上传人:汽*** 文档编号:571154683 上传时间:2024-08-09 格式:PPT 页数:19 大小:502.54KB
返回 下载 相关 举报
第5章Java在数据库中的应用ppt课件全_第1页
第1页 / 共19页
第5章Java在数据库中的应用ppt课件全_第2页
第2页 / 共19页
第5章Java在数据库中的应用ppt课件全_第3页
第3页 / 共19页
第5章Java在数据库中的应用ppt课件全_第4页
第4页 / 共19页
第5章Java在数据库中的应用ppt课件全_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《第5章Java在数据库中的应用ppt课件全》由会员分享,可在线阅读,更多相关《第5章Java在数据库中的应用ppt课件全(19页珍藏版)》请在金锄头文库上搜索。

1、第5章java在数据库的应用15.1 数据库的连接5.2 实例1利用Java应用程序访问 SQL Server 2000 数据库5.3 电子词典程序设计25.1 数据库的连接数据库的连接使用使用JDBC 连接数据库连接数据库JDBC(Java DataBase Connectivity)是Java程序连接数据库的应用程序接口(API)。JDBC 由一群类和接口组成,通过调用这些类和接口所提供的成员方法,我们可以连接各种不同的数据库,进而使用标准的SQL命令对数据库进行查询、插入、删除、更新等操作。1.Java应用程序Java程序包括Java应用程序和小应用程序,主要是根据JDBC方法实现对数据

2、库的访问和操作。完成的主要任务有请求与数据库建立连接;向数据库发送SQL请求;为结果集定义存储应用和数据类型;查询结果;处理错误;控制传输、提交及关闭连接等操作。2.JDBC 编程要点(1)引用java.sql包:import java.sql.*;(2)使用Class.forName( )方法加载相应数据库的JDBC驱动程序:”);(3)定义JDBC的URL对象。例如:String conURL= “jdbc:odbc:TestDB”;其中TestDB是我们设置的数据源。(4)连接数据库:Connection s=DriverManager.getConnection(conURL);(5)

3、使用SQL语句对数据库进行操作。(6)解除Java与数据库的连接并关闭数据库。例如:s.close( ); 35.1.2 常用的常用的JDBC类与方法类与方法1. DriverManage 类类类是类是JDBC的管理器,负责管理的管理器,负责管理JDBC驱动程序,跟踪驱动程序,跟踪可用的驱动程序并在数据库和相应驱动程序之间建立可用的驱动程序并在数据库和相应驱动程序之间建立连接。如果我们要使用连接。如果我们要使用JDBC驱动程序,必须加载驱动程序,必须加载JDBC驱动程序并向驱动程序并向DriverManage注册后才能使用。注册后才能使用。加载和注册驱动程序可以使用加载和注册驱动程序可以使用C

4、lass.forName( )这个这个方法来完成。此外,类还处理如驱动程序登录时间限方法来完成。此外,类还处理如驱动程序登录时间限制及登录和跟踪消息的显示等事务。类提供的常用成制及登录和跟踪消息的显示等事务。类提供的常用成员方法如下:员方法如下: 4(1)public static synchronized Connection getConnection(String url)throws SQLException方法。这个方法的作用是使用指定的数据库URL创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQL

5、Exception异常。(2)public static synchronized Connection getConnection(String url,Propertiesinfo)throws SQLException方法。这个方法使用指定的数据库URL和相关信息(用户名、用户密码等属性列表)来创建一个连接,使DriverManage从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(3)public static synchronized Connection getConnection(String url,Stri

6、ng user,String password)throws SQLException方法。它使用指定的数据库URL、用户名和用户密码创建一个连接,使DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(4)public static Driver getDriver(String url)throws SQLException方法。它定位在给定URL下的驱动程序,让DriverManager从注册的JDBC驱动程序中选择一个适当的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException

7、异常。(5)public static void deregisterDriver(Driverdriver)throws SQLException方法。这个方法的作用是从DriverManager列表中删除指定的驱动程序。如果发生数据库访问错误,则程序抛出一个SQLException异常。(6)public static int getLoginTimeout( )方法。它用来获取连接数据库时驱动程序可以等待的最大时间,以秒为单位。(7)public static PrintStream getLogStream( )方法。它用来获取DriverManager和所有驱动程序使用的日志Prin

8、tStream( )对象。(8)public static void println(String message)方法。它用来给当前JDBC日志流输出指定的消息。 52.Connection类类负责建立与指定数据库的连接。Connection类提供的常用成员方法如下:(1)public Statement createStatement( )throws SQLException方法,用来创建Statement类对象。(2)public Statement createStatement(int resultSetType,int resultSetConcurrecy)throws SQL

9、Exception方法,用来按指定的参数创建Statement类对象。(3)public DatabaseMetaData getMetaData( )throws SQLException方法,用来创建DatabaseMetaData对象。不同数据库系统拥有不同的特性,DatabaseMetaData类不但可以保留数据库的所有特性,并且还提供一系列成员方法获取数据库的特性,如取得数据库名称、JDBC驱动程序名、版本代号及连接数据库的JDBC URL。(4)public PreparedStatement prepareStatement(String sql)throws SQLExcept

10、ion方法,用来创建PreparedStatement类对象。关于该类对象的特性将在后面介绍。(5)public void commit( )throws SQLException方法,用来提交对数据库执行添加、删除或修改记录(Record)的操作。(6)public boolean getAutoCommit( )throws SQLException方法,用来获取Connection类对象的Auto_Commit(自动提交)状态。(7)public void setAutoCommit(boolean autoCommit)throws SQLException方法,用来设定Connect

11、ion类对象的Auto_Commit(自动提交)状态。如果将Connection类对象的autoCommit设置为true,则它的每一个SQL语句将作为一个独立的事务被执行和提交。(8)public void rollback( )throws SQLException方法,用来取消对数据库执行过的添加、删除或修改记录(Record)等操作,将数据库恢复到执行这些操作前的状态。(9)public void close( )throws SQLException方法,用来断开Connection类对象与数据库的连接。(10)public boolean isClosed( )throws SQL

12、Exception方法,用来测试是否已关闭Connection类对象与数据库的连接。 63.Statement 类类的主要功能是将SQL命令传送给数据库,并将SQL命令的执行结果返回。Statement类提供的常用成员方法如下:(1)public ResultSet executeQuery(String sql)throws SQLException 方法,用来执行指定的SQL查询语句,返回查询结果。如果发生数据库访问错误,则程序抛出一个SQLException异常。(2)public int executeUPdate(String sql)throws SQLException 方法,用

13、来执行SQL的INSERT、UPDATE和DELETE语句,返回值是插入、修改或删除的记录行数或者是0。如果发生数据库访问错误,则程序抛出一个SQLException异常。(3)public boolean execute(String sql)throws SQLException 方法,用来执行指定的SQL语句,执行结果有多种情况。如果执行结果为一个结果集对象,则返回true,其他情况返回false。如果发生数据库访问错误,则程序抛出一个SQLException异常。(4)public ResultSet getResultSet( )throws SQLException 方法,用来获取

14、ResultSet对象的当前结果集。对于每一个结果只调用一次。如果发生数据库访问错误,则程序抛出一个SQLException异常。(5)public int getUpdateCount( )throws SQLException 方法,用来获取当前结果的更新记录数,如果结果是一个ResultSet对象或没有更多的结果,则返回-1。对于每一个结果只调用一次。如果发生数据库访问错误,则程序抛出一个SQLException异常。(6)public void clearWarnings( )throws SQLException 方法,用来清除Statement对象产生的所有警告信息。如果发生数据库

15、访问错误,则程序抛出一个SQLException异常。(7)public void close( )throws SQLException 方法,用来释放清除Statement对象的数据库和JDBC资源。如果发生数据库访问错误,则程序抛出一个SQLException异常。 74.PreparedStatement类类的对象可以代表一个预编译的SQL语句,它是Statement接口的子接口。由于PreparedStatement类会将传入SQL编译并暂存在内存中,所以当某一SQL命令在程序中被多次执行时,使用PreparedStatement类的对象执行速度要快于Statement类的对象。因此

16、,将需要多次执行的SQL语句创建为PreparedStatement对象,可以提高效率。PreparedStatement对象继承Statement对象的所有功能,另外还添加一些特定的方法。PreparedStatement类提供的常用成员方法如下:(1)public ResultSet executeQuery( )throws SQLExceptiion 方法,使用SQL指令SELECT对数据库进行记录查询操作,并返回ResultSet对象。(2)public int executeUpdate( )throws SQLException 方法,使用SQL指令INSERT、DELETE和U

17、PDATE对数据库进行添加、删除和修改记录(Record)操作。(3)public void setDate(int parameterIndex,Date x)throws SQLExceptiion 方法,用来给指定位置的参数设定日期型数值。(4)public void setTime(int parameterIndex,Time x)throws SQLExceptiion 方法,用来给指定位置的参数设定时间型数值。(5)public void setDouble(int parameterIndex,double x)throws SQLExceptiion 方法,用来给指定位置的参

18、数设定Double型数值。(6)public void setFloat(int parameterIndex,float x)throws SQLExceptiion 方法,用来给指定位置的参数设定浮点型数值。(7)public void setInt(int parameterIndex,int x)throws SQLExceptiion 方法,用来给指定位置的参数设定整数型数值。(8)public void setNull(int parameterIndex,int sqlType)throws SQLExceptiion 方法,用来给指定位置的参数设定NULL型数值。 85.2 实

19、例实例1利用利用Java应用程序访问应用程序访问SQL Server 2000 数数据库据库数据库技术和网络技术是当前计算机领域的两大热门话题,数据库技术自产生以来,在技术上已发展成熟。而作为前端访问的开发工具和环境仍处在不断完善和发展中,除了网络上使用的ASP、PHP、JSP 作为前端连接数据库技术外,小型系统上常用的访问数据库技术有Delphi、Visual Basic、PowerBuilder及Visual C+等,而Java也是其中之一。Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据库的技术。利用Java语言中JDBC技术,用户能方便地开发出基于Web网页的数据库

20、访问程序,从而扩充网络应用功能。JDBC (Java Database Connectivity, Java 数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如 Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中数据,而不必再为每一种数据库系统编写不同的Java 程序代码。SQL Server 2000 是微软公司新一代的数据库产品,它是在 SQL Se

21、rver 7.0建立的坚固基础上产生的,并对SQL Server 7.0做了大量扩展。SQL Server 2000通过高端硬件平台以及最新网络和存储技术的支持,可为最大的Web站点和企业级应用提供可扩展性和高可靠性。 91.JDBC、ODBC接口接口Java应用程序通过应用程序通过JDBC API(java.sql)与数据库连接,而实际的)与数据库连接,而实际的动作则是由动作则是由JDBC驱动程序管理器(驱动程序管理器(JDBC Driver Manager)通过)通过JDBC驱动程序与数据库系统进行连接。驱动程序与数据库系统进行连接。ODBC(Open DataBase Connectiv

22、ity)即开放式的接口,它为用户提供了一个访问关系数据)即开放式的接口,它为用户提供了一个访问关系数据库的标准接口,对于不同的数据库它提供了一套统一的库的标准接口,对于不同的数据库它提供了一套统一的API;可以使;可以使应用程序通过应用程序通过API访问任何提供了访问任何提供了ODBC驱动程序的数据库,而目前驱动程序的数据库,而目前所有的关系数据库都提供了所有的关系数据库都提供了ODBC驱动程序,所以驱动程序,所以OBDC已经成为数已经成为数据库访问的业界标准,并得到了广泛应用。据库访问的业界标准,并得到了广泛应用。JDBC-ODBC桥是一种桥是一种JDBC驱动程序,它通过将驱动程序,它通过将

23、JDBC操作转换为操作转换为ODBC操作来实现的。操作来实现的。利用利用JDBC-ODBC桥可以使程序开发人员不需要学习更多的知识就可桥可以使程序开发人员不需要学习更多的知识就可以编写以编写JDBC应用程序,并能够充分利用现有的应用程序,并能够充分利用现有的ODBC数据源。数据源。JDBC-ODBC桥驱动程序可以使桥驱动程序可以使JDBC能够访问几乎所有类型的数据能够访问几乎所有类型的数据库。库。5.2.1 Java5.2.1 Java通过通过JDBCJDBC、ODBCODBC接口访问数据库接口访问数据库102.利用Java应用程序访问SQL Server 2000 数据库(1)建立数据库。启

24、动“Microsoft SQL Server 2000 ”,打开“企业管理器”,在“数据库”中建立名为“mydata”的数据库,并在其下建立名为“wuzi”的数据表,如图5-1所示。(2)建立(ODBC)数据源和驱动程序。 11在控制面板上通过“管理工具”的“数据源(ODBC)”打开“ODBC数据源管理器”对话框,单击“系统DSN”选项卡,然后单击“添加”按钮,得到“创建数据源”对话框,选择“SQL Server”并单击“完成”按钮,在出现的“建立新的数据源到SQL Server”对话框中的“数据源名称”项填写“wzgl”并选取“服务器名”,然后单击“下一步”按钮,选择“使用网络登录ID的Wi

25、ndows NT验证”项目,单击“下一步”按钮,把默认的数据库改为“mydata”,再单击“下一步”,单击“完成”按钮,然后可以单击“测试数据源”,成功后,单击“确定”按钮,就完成了(ODBC)数据源和驱动程序的建立。 123.编写代码/*程序文件名称:jdbc.java*功能:实现数据查询功能*/import java.awt.*;import .*;import java.sql.*;public class jdbc /定义主类public static void main(String args ) GUI gui=new GUI( );/创建类GUI的对象 gui.pack( );/

26、装载执行GUI类 class GUI extends Frame implements ActionListener TextArea text; Panel panel; TextField sno; 13Button btn; GUI( ) /构造方法 super(物资情况查询); setLayout(new BorderLayout( ); setBackground(Color.cyan); setVisible(true); text=new TextArea( ); btn=new Button(查询); sno=new TextField(16); panel=new Panel

27、( ); panel.add(new Label(输入被查询的物资编号:); panel.add(sno); panel.add(btn); add(North,panel); add(text, Center); text.setEditable(false); btn.addActionListener(this); addWindowListerner(new WindowAdapter( ) public void windowClosing(WindowEvent e) System.exit(0); ); 14public void actionPerformed(ActionEv

28、ent e) if(e.getSource( )=btn) /当用户按下查询按钮时 text.setText(查询结果+n); /显示提示信息 try Liststudent( ); catch(SQLException ee) public void Liststudent( )throws SQLException /针对数据库的操作 String bh,mc,xh,lb,dw,sj; int sl; float dj,je; try ); catch(ClassNotFoundException e) Connection con=DriverManager.getConnection(

29、jdbc:odbc:wzgl); 15Statement sql=con.createStatement(); /创建Statement对象 ResultSet rs=sql.executeQuery(select * from wuzi); while(rs.next( ) /输出被查询的情况 bh=rs.getString(物资编号); mc=rs.getString(物资名称); xh=rs.getString(规格型号); lb=rs.getString(类别); dw=rs.getString(计量单位); sl=rs.getInt(数量); dj=rs.getFloat(单价);

30、je=rs.getFloat(金额); sj=rs.getDate(时间).toString( ); if(bh.trim( ).equals(sno.getText( ).trim( ) text.append(n+ 物资编号+ + 物资名称+ + 规格型号+ + 类别+ + 计量单位+ + 数量+ + 单价+ + 金额+ + 时间+n); text.append(n+ bh+ +mc+ +xh+ +lb + +dw+ +sl+ +dj+ +je+ +sj+ + n); 164.运行程序运行程序首先编译:首先编译:javac jdbc.java。编译成功后,执。编译成功后,执行:行:java

31、 jdbc。执行后在文本框中输入要查询。执行后在文本框中输入要查询物资的物资编号,单击物资的物资编号,单击“查询查询”按钮,在下面按钮,在下面的文本框中显示被查询物资的所有信息。如图的文本框中显示被查询物资的所有信息。如图5-2所示。所示。17/初始化窗体结束初始化窗体结束70: public void readRecord()71: 72: BankAccountRecord record;/从文件中输入值从文件中输入值73: try74: 75: record=(BankAccountRecord)input.readObject();76: String values =String.v

32、aluesOf(record.getAccount(),record.getFirstName(), record.getLastName(),String.valueOf(record.getBalance()77: ;78: userInterface.setFieldValues(values);79: 80: catch(EOFException eofex) 81: 82: nextRecord.setEnabled(false);83: JOptionPane.showMessageDialog(this,”No more records in file”,“End of File

33、”,JOptionPane.ERROR_MESSAGE);84: 85: catch(ClassNotFoundException cnfex)1886: JOptionPane.showMessageDialog(this,”Unable to create object”,“Class Not Found”,JoptionPane.ERROR_MESSAGE);87: 88: catch(IOException ioex)89: JOptionPane.showMessageDialog(this,”Error during read from file”,“Read Error”,JOp

34、tionPane.ERROR_MESSAGE);90: 91: 92: private void closeFile()93: try94: input.close();95: System.exit(0); 96: catch(IOException e)97: JOptionPane.showMessageDialog(this,”Error closing file”,”Error”,JOptionPane.ERROR_MESSAGE); 98: System.exit(1); 99: 100: public static void main(String args)101: 102: new ReadSequentialFile( );103: 104: 19

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号