欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    模块7Java数据库编程.ppt

    • 资源ID:5992318       资源大小:309KB        全文页数:72页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    模块7Java数据库编程.ppt

    模块7 Java数据库编程,教学目标,JDBC技术JDBC的体系结构JDBC驱动程序类型JDBC API的主要类和接口简介创建SQL Server服务器上的数据库SQL Server的组件简单介绍创建用户数据库student和ODBC数据源创建ODBC数据源Java应用程序通过JDBC存取数据库的过程应用JDBC存取数据库的步骤JDBC存取SQL Server数据库的简单实例,教学目标(续),JDBC中的主要接口和类DriverManager类 Connection接口Statement接口PreparedStatement接口CallableStatement接口Java数据类型和SQL中支持的数据类型的对应关系ResultSet接口ResultSetMetaData接口DatabaseMetaData接口数据库开发应用实例student数据库的插入、修改、删除记录的程序设计查询student数据库的程序设计,7.1 JDBC技术,Java程序使用JDBC(Java Database Connectivity,Java数据库连接)API与数据库进行通信,并用它操纵数据库中的数据。这种API与特定数据库的驱动程序相分离,使开发人员能够改变底层的数据库,而不必修改访问数据库的Java代码。,7.1.1 JDBC的体系结构,图13-1 JDBC的体系结构,7.1.2 JDBC驱动程序类型,1JDBC-ODBC bridge plus ODBC driver(类型1):JDBC-ODBC桥接驱动程序。其底层通过ODBC(Open databas Connectivity)驱动程序来连接数据库。2 Native-API partly-Java driver(类型2):本地 API-部份用 Java 来编写的驱动程序。此种方式先将JDBC函数调用转换成数据库客户端函数库的API(位于客户端计算机),然后与数据库相连。3JDBC-Net pure Java driver(类型3):JDBC 网络纯 Java 驱动程序。首先JDBC驱动程序会将JDBC函数调用解释成与数据库无关的网络通信协议,经过中介服务器的第二次解析,最后才转换成相对应的数据库通信协议.4、Native-protocol pure Java driver(类型4)本地协议纯 Java驱动程序。这种驱动程序将 JDBC 调用直接转换为 DBMS 所使用的网络协议。,7.1.3 JDBC API的主要类和接口简介,JDBC API由一系列与数据库访问有关的类和接口组成,它们放在java.sql子包中。其中主要的类和接口有:DriverManager类:Connection接口Statement接口PreparedStatement与CallableStatement;ResultSet;CallableStatement接口,7.创建SQL Server服务器上的数据库,SQL Server 2000数据库逐渐成为Windows操作系统平台下进行数据库应用开发中较为理想的选择之一,它可作为大型Web站点、企业OLTP(联机事务处理)以及数据仓库系统等的产品数据库服务器。,7.2.1 SQL Server的组件简单介绍,SQL Server 2000 提供了一整套的管理工具和实用程序,使用这些工具和程序,可以设置和管理SQL Server 进行数据库管理和备份,并保证数据的安全和一致。1 企业管理器(Enterprise Manager)企业管理器是SQL Server 中最重要的管理工具,在使用SQL Server的过程中大部分的时间都是和它打交道。通过企业管理器可以管理所有的数据库系统工作和服务器工作。详细说明请参考SQL SERVER 2000技术手册。2 查询分析器(Query Analyzer)查询分析器用于执行Transaction-SQL 命令等SQL 脚本程序,以查询分析或处理数据库中的数据,这是一个非常实用的工具,对掌握SQL 语言、理解SQL Server 的工作有很大帮助。,企业管理器主界面,查询分析器的界面,7.2.1 SQL Server的组件简单介绍(续),3.服务管理器(Service Manager)服务管理器用于启动、暂停或停止SQL Server。4 客户端网络实用工具(Client Network Utility)客户端网络实用工具用于配置客户端的连接、测定网络库的版本信息以及设定本地数据库的相关选项。5 服务器网络实用工具(Server Network Utility)服务器网络实用工具用于配置服务器端的连接、测定网络库的版本信息。6 导入和导出数据(Import and Export Data)导入和导出数据采用 DTS Import/Export 向导来完成,此向导包含了所有的DTS(Data Transformation Services 数据转换服务)工具,提供了在OLE DB数据源之间复制数据的最简捷的方法。7 在IIS中配置SQL XML支持(Configure SQL XML Support in IIS)IIS(Internet Information Services 因特网信息服务),此工具可以在运行IIS的计算机上定义、注册虚拟目录,并在虚拟目录和SQL Server 实例之间创建关联。,7.2.2 创建用户数据库student和ODBC数据源,SQL Server服务器上存放着一组系统数据库和用户数据库。用户数据库Student是我们本章要用的数据库,存放着学生的基本信息、课程情况和学生学习各门课程的学习成绩。Student数据库中有学生情况表S、课程情况表C和学习成绩表SC。S由学号、姓名、性别、年龄和所在系各字段组成;C由课程号、课程名和学分各字段组成;SC由学号、课程号和学习成绩各字段组成。,1.在Microsoft SQL Server服务器上创建数据库student,进入查询分析器(Query Analyzer),通过运行下面的脚本文件student.sql,完成创建数据库student和三张表S、C和SC。,2.创建ODBC数据源,用window控制面板中数据源“ODBC”管理器,创建一个连接到SQL Server的数据源数据源名称为studentDSN,连接的数据库是student,用户为sa,口令为1(空)。此数据源名studentDSN本章中的例子中使用。,7.3 Java应用程序通过JDBC存取数据库的过程,本节首先介绍通过JDBC存取数据库的步骤,然后通过一个简单实例演示整个过程。,7.3.1 应用JDBC存取数据库的步骤,Java应用程序通过JDBC存取数据库时应该遵循五个步骤:1.加载(注册)适当的JDBC驱动程序 2.建立数据库连接 3.建立与执行SQL语句 4.处理结果集 5.关闭数据库连接,1.加载(注册)JDBC驱动程序,加载JDBC驱动程序通常有下列两种方法:(1)使用Class.forName()语法:Class.forName(驱动程序名称);例如:加载jdbc-odbc驱动程序,Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);例如:加载Oracle JDBC驱动程序:Class.forName(oracle.jdbc.driver.OracleDriver);此操作只是向JVM注册,并没有建立一个实例对象,如果需要在程序中参照Driver对象,必须用new进行实例化。如:Driver oracledry=new oracle.jdbc.driver.OracleDriver();,1.加载(注册)JDBC驱动程序(续),(2)使用DriverManager.registerDriver()DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver();,2 建立数据库连接,使用DriverManger.getConnection(),建立一个新的数据库连接。方法:Connnetion getConnection(String URL);返回连接到特定数据库的Connnetion对象。参数String用来定义JDBC URL。JDBC URL由三部分组成:jdbc:subProtocol:subName 即主通信协议、子通信协议和子名称。如连接SQL server 2005数据库可设URL为jdbc:odbc:MSSQL,其中主通信协议为jdbc,子通信协议为odbc,子名称是ODBC的DSN。,2 建立数据库连接(续),建立数据库连接的代码段如下:通过数据源连接:String url=jdbc:odbc:studentDSN;String login=sa;String password=“1”;Connection conn=DriverManager.getConnection(url,login,password);通过机器名或IP连接:String url=jdbc:odbc:Driver=SQLerver;Server=image;uid=sa;pwd=;Database=jspdb;如果用IP只需将服务器名image改为即可.,2 建立数据库连接(续),如果URL中不包含uid和pwd,也可写成:Connection conn=DriverManager.getConnection(URL,sa,null);如果是Access数据库只需将URL改为:String url=jdbc:odbc:Driver=Microsoft Access Driver(*.mdb);DBQ=c:/data/test.mdb;,3建立SQL语句对象,执行查询,建立新数据库连接以后,必须先建立一个Statement对象才能执行SQL语句。在Java中,定义了三种类型的Statememt,它们是Statement、PreparedStatement和CallableStatement。三种均包含用于进行数据库操作的SQL语句。(1)使用Statement。示例如下:Statement Stmt=conn.createStatement();String sqlQuery=“select*from Employee”;ResultSet rs=Stmt.executeQuery(sqlQuery);,3建立SQL语句对象,执行查询(续),(2)使用PreparedStatement用于处理预编译的SQL语句,可重复执行。示例如下:PreparedStatement prepStmt=conn.prepareStatement(SELECT*FROM Employee);ResultSet rset=prepStmt.executeQuery();利用WHERE来限制SELECT语句的查询结果,示例如下:PreparedStatement prepStmt=conn.prepareStatement(SELECT*FROM Employee WHERE ename=?)prepStmt.setString(1,SCOTT);/setString设置要传入的第一个参数的值是SCOTT ResultSet rset=prepStmt.executeQuery();,3建立SQL语句对象,执行查询(续),执行UPDATE语句,示例如下:PreparedStatement prepStmt=conn.prepareStatement(UPDATE emp SET sal=?WHERE ename=?);prepStmt.setInt(1,100000);/设置要传入的第一个参数(?)值是100000 prepStmt.setString(2,Rich);/设置要传入的第二个参数(?)值是Rich prepStmt.executeUpdate();,3建立SQL语句对象,执行查询(续),(3)使用CallableStatement用来调用数据库存储过程 语法:CallableStatement 变量名=conn.prepareCall(call 存储过程名称);示例如下:CallableStatement callStmt=conn.prepareCall(call update_salary(?,?);callStmt.setInt(1,7788);/设置要传入的第一个输入参数(?)值是7788 callStmt.setInt(2,10000);/设置要传入的第二个输入参数(?)值是10000 callStmt.execute();,3建立SQL语句对象,执行查询(续),上面的建立Statement对象之后,有3种方法执行SQL语句,分别是:executeQuery():执行select的SQL查询语句executeUpdate():执行insert、delete、update 更新语句,以及DDL语句。execute():执行select的SQL查询语句。,3建立SQL语句对象,执行查询(续),例如:/SQL查询语句ResultSet rset=stmt.executeQuery(SELECT*FROM emp);/update语句stmt.executeUpdate(update emp set age=sge+1);/delete语句stmt.executeUpdate(delete emp for age=20);/DDL语句stmt.executeUpdate(CREATE TABLE table+(no CHAR(10),name CHAR(10);,4.处理结果集,可用while循环打印出ResultSet记录集内所有记录。while(rs.next()System.out.println(rs.getInt(1);System.out.println(rs.getString(2);1、2、3、表示各字段相对位置,5.关闭数据库连接,通过JDBC存取数据库时最后一个操作是关闭Connection、Statement、ResultSet等对象.rs.close();stmt.close();con.close();,7.3.2 JDBC存取SQL Server数据库的简单实例,例7-1 编写通过JDBC存取student数据库中的表C的Java程序。本例利用前面7.2节创建好的ODBC数据源,名称为studentDSN,存取student数据库,/jdbcExample1.javaimport java.sql.*;import javax.swing.*;class jdbcExample1 public static void main(String args)try/加载JDBC驱动程序 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/String url=jdbc:odbc:studentDSN;String login=sa;String password=“1;/通过数据源连接Connection conn=DriverManager.getConnection(url,login,password);/建立SQL语句对象Statement statement=conn.createStatement();String sqlQuery=select*from course;/执行查询ResultSet rs=statement.executeQuery(sqlQuery);while(rs.next()/处理结果集 System.out.print(rs.getString(1)+,);System.out.print(rs.getString(2)+,);System.out.print(rs.getInt(3)+,);,/关闭数据库连接 statement.close();conn.close();/捕获异常 catch(SQLException sqlException)JOptionPane.showMessageDialog(null,sqlException.getMessage(),Database Error,JOptionPane.ERROR_MESSAGE);System.exit(1);/detect problems loading database driver catch(ClassNotFoundException classNotFound)JOptionPane.showMessageDialog(null,classNotFound.getMessage(),Driver Not Found,JOptionPane.ERROR_MESSAGE);System.exit(1);/end of main/end of class,c1,数据库,4c2,数学,2.5c3,信息系统,4c4,英语,3,7.4 JDBC中的主要接口和类,Java应用程序访问数据库主要是通过JDBC API实现的,通过下面几个重要接口和类:DriverManager类 Connection接口 Statement接口 PreparedStatement接口 CallableStatement接口 ResultSet接口 ResultSetMetaData接口 DatabaseMetaData接口 Java的基本数据类型和SQL中支持的数据类型对应关系。,7.4.1 DriverManager类,DriverManager类是Java.sql包中用于数据库驱动程序管理的类,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接,也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。DriverManager 类直接继承自,其主要成员方法(请参见本书),7.4.2 Connection接口,Connection接口是用来表示数据库连接的对象,对数据库的一切操作都是在这个连接的基础上进行的。Connection接口的主要成员方法(请参见本书),7.4.3 Statement接口,Statement接口用于在已经建立的连接的基础上向数据库发送SQL语句的对象。它只是一个接口的定义,其中包括了执行SQL语句和获取返回结果的方法。有3种 Statement 对象:Statement、PreparedStatement(继承自Statement)和 CallableStatement(继承自PreparedStatement)。它们都作为在给定连接上执行 SQL 语句的容器,每个都专用于发送特定类型的 SQL 语句:Statement 对象用于执行不带参数的简单 SQL 语句;PreparedStatement 对象用于执行带或不带 IN 参数的预编译 SQL 语句;CallableStatement 对象用于执行对数据库已存储过程的调用。,7.4.3 Statement接口,创建statement对象的方法如下:Statement stmt=con.createStatement();Statement接口定义中包括的主要方法(请参见本书),7.4.4 PreparedStatement接口,PreparedStatement接口和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待使用,当有单一的SQL指令需多次执行时,用PreparedStatement会比Statement效率更高。PreparedStatement接口的主要方法,7.4.5 CallableStatement接口,CallableStatement接口用于执行对数据库已存储过程的调用。在CallableStatement对象中,有一个通用的成员方法call,这个方法以名称的方式调用数据库中的存储过程。在数据库调用过程中,可以通过设置IN参数向调用的存储过程提供执行所需的参数。另外,在存储过程的调用中,通过OUT参数获取存储过程的执行结果。CallableStatement 接口的主要成员方法,7.4.6 Java数据类型和SQL中支持的数据类型的对应关系,Java的基本数据类型和SQL中支持的数据类型有一定的对应关系。这种对应关系如表所示,7.4.7 ResultSet接口,ResultSet接口负责存储查询数据库的结果。并提供一系列的方法对数据库进行新增、删除和修改操作;也负责维护一个记录指针(Cursor),记录指针指向数据表中的某个记录,通过适当的移动记录指针,可以随心所欲的存取数据库,加强程序的效率。ResultSet接口主要方法(请参见本书),7.4.8 ResultSetMetaData接口,ResultSetMetaData接口的对象保存了所有ResultSet类对象中关于字段的元信息,并提供许多方法来取得这些信息。ResultSetMetaData接口中的方法(请参见本书),7.4.9 DatabaseMetaData接口,DatabaseMetaData接口保存了数据库的所有特性,并且提供许多方法来取得这些信息。DatabaseMetaData类的主要方法(请参见本书),7.5数据库开发应用实例,本节利用前面建立的SQL Server的数据库Student和ODBC数据源studentDSN,安排了对数据库进行插入、修改、删除和查询的Java程序设计。这些程序设计实例在设计时,考虑了通用性原则,应用了通用性的程序设计技术。其好处是:你可以利用本节示范的程序设计例子很容易编写访问其它数据库的Java应用程序。,7.5.1 student数据库的插入、修改、删除记录的程序设计,对Student数据库中的表S完成输入、修改、删除的Java程序。这三个程序有相似的GUI,因此声明类StudentUI以封装该GUI。例13-2 对Student数据库中的表S完成增加记录的程序设计。程序由两个类AddStudentFrame和StudentUI组成。将 StudentUI类放在子包UI中;在类AddStudentFrame中,用语句import UI.StudentUI;导入子包中类StudentUI。,类StudentUI设计思路,类StudentUI完成输入记录的画面设计,其设计思路如下:(1)调用者利用StudentUI类构造方法的参数(字符型数组String arrayString),传递输入记录画面上一组列的标题。在StudentUI类构造方法中,从数组arrayString的实例变量arrayString.length中可得到列的个数,并取出列的标题放在labels数组。(2)定义一组文本字段fields用于编辑一张表的记录各字段,并且调用者通过方法getFields()和setFields()可读取和设置fields值。(3)类StudentUI界面上提供两个通用Button按钮doTask1、doTask2,按钮的标签内容和按钮的事件处理过程,可通过调用者来设置。类StudentUI的程序代码,类AddStudentFrame设计思路,类AddStudentFrame是一个Frame,在此类中创建StudentUI的对象并将它添加到Frame。在创建StudentUI对象时,调用构造方法,将要显示的记录的一组列标题,传递给StudentUI对象;并从StudentUI对象中得到用户输入的记录的各字段值;两个通用按钮的内容和事件处理代码在此类中也得到设置。类AddStudentFrame的代码,例7-2 对student数据库中的表Student完成增加记录的程序执行结果,7.5.1 student数据库的插入、修改、删除记录的程序设计(续),例7-3 对Student数据库中的表S完成修改记录的程序设计。程序根据用户输入的要修改的学号值,定位并修改表S中的记录。若数据库中对应的记录不存在,则显示无此记录的提示。程序代码如下:UpdateStudentFrame.java的代码,例7-3 对student数据库中的表S完成修改记录的程序执行结果,7.5.1 student数据库的插入、修改、删除记录的程序设计(续),例13-4 对Student数据库中的表S完成删除记录的程序设计。程序根据用户输入的要删除的学号值,定位并删除表S中的记录。若数据库中对应的记录不存在,则显示无此记录的提示。程序代码如下:DeleteStudentFrame.java,例7-4 对student数据库中的表Student完成删除记录的程序执行结果,7.5.2 查询student数据库的程序设计,例13-5 对student数据库完成查询记录的程序设计。该程序利用Java的GUI组件JtextArea(多行文本编辑域),显示从数据库查询得到的student表的记录集合。此程序在类DisplayStudents(从Frame继承)中建立数据库连接,定义要执行的SQL语句字符串,执行SQL语句得到查询结果集对象resultSet。利用语句:ResultSetMetaData metaData=resultSet.getMetaData();取得查询结果集的元数据ResultSetMetaData的对象metaData。调用metaData对象的方法getColumnCount()取得结果集中列的个数,调用getColumnName(i)取得结果集中的第i列的名称。,7.5.2 查询student数据库的程序设计(续),接着执行循环语句:while(resultSet.next()for(int i=1;i=numberOfColumns;i+)results.append(resultSet.getObject(i)+t);results.append(n);循环执行之前结果集的指针开始定位在第一条记录之前,next()方法向下移动一条记录。方法getObject(i)读取第i条记录添加到文本编辑域变量results中。此过程不断重复,直到结果集的指针定位到表的最后一条记录之后的位置或文件尾(即next()返回值为假)为止。最后在Frame中显示文本编辑域变量results的值。,7.5.2 查询student数据库的程序设计(续),注意:此程序在设计时,考虑了程序的通用性:即通过修改此程序中定义中ODBC数据库源名称和要执行的SQL语句字符串,此程序可对任何数据库中的表进行查询操作。类DisplayStudents的代码,例7-5 对student数据库完成查询记录的程序执行结果,7.5.2 查询student数据库的程序设计(续),例13-6 以表格格式显示数据库的查询结果的程序设计。此程序运行时,用户能自定义要查询的SQL语句,包括单表查询、多表查询,有条件的查询、无条件的查询,以及对表的统计查询。运行的结果以二维表格的形式表现。为了在用户界面上以二维表格形式表现查询结果,可以利用JTable表格类和AbstractTableModel表格模型类。用JTable类以二维表的形式显示,数据表格中的数据从表格模型 AbstractTableModel类的对象中获取。下面先介绍这两个类。,1类JTable,JTable组件属于javax.swing包,它能以二维表的形式显示数据。类JTable在显示数据时具有以下特点:(1)可定制性:可以定制数据的显示方式和编辑状态;(2)异构性:可以显示不同类型的数据对象,甚至包括颜色、图标等复杂对象;(3)简便性:可以以缺省方式轻松地建立起一个二维表。使用类JTable显示数据之前,必须根据情况先生成定制的表格模型、单元绘制器或单元编辑器。类AbstractListModel用来定制用户自己的表格模型。创建JTable的表格对象时,将捆绑定制的表格模型。例如:JTable table=new JTable(dataModel);/dataModel是定制的表格模型对象 JScrollPane scrollpane=new JScrollPane(table);/将表格添加到可滚动的面板,2.类AbstractTableModel,类AbstractTableModel,提供了TableModel接口中绝大多数方法的缺省实现。类AbstractTableModel隶属于。该类是一个抽象类,没有完全实现,不能实例化,使用时必须在程序中实现方法。要想生成一个具体的TableModel作为AbstractTableMode的子类,至少必须实现下面以下三个方法:public int getRowCount();/得到表格的行数 public int getColumnCount();/得到表格的行数 public Object getValueAt(int row,int column);/得到表格的第row行、第column列的单元值,2.类AbstractTableModel(续),例如,我们可以建立一个简单二维表(1010),实现方法如下:TableModel dataModel=new AbstractTableModel()/定制自己的表格模型 public int getColumnCount()return 10;public int getRowCount()return 10;public Object getValueAt(int row,int col)return new Integer(row*col);JTable table=new JTable(dataModel);/捆绑定制的表格模型 JScrollPane scrollpane=new JScrollPane(table);/将表格添加到可滚动的面板,例7-6 以表格格式显示数据库的查询结果的程序设计的思路,在例13-6中,为了实现在表格中显示数据库的查询结果,用一个TableModel对象把ResultSet数据提供给JTable,在JTable中显示查询结果。ResultSetTableModel类执行与数据库的连接和生成ResultSet对象。DispalyQueryResults类创建GUI,并建立JTable的对象,并从ResultStTableModel的对象中获得数据。,例7-6 以表格格式显示数据库的查询结果的程序设计的思路(续),ResultStTableModel类的构造方法接收三个参数:数据库驱动程序列的名称、数据库的URL、和要执行的查询SQL语句的字符串。类中使用的createStatement方法如下:statement=connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);其版本带有两个参数:结果集类型和结果集的并发性。结果集类型规定ResultSet的游标移动的方向以及Result是否对变化敏感。结果集的并发性规定是否能用ResultSet的更新方法更新ResultSet。上面语句规定了一个游标可沿两个方向滚动的、对变化敏感的和只读的ResultSet。,例7-6 以表格格式显示数据库的查询结果的程序设计的思路(续),ResultStTableModel类是AbstractTableModel类的子类,在此类中重写了TableModel 的方法有getColumnCount()、getRowCount()、getValueAt和getColumnName(得到列名)、getColumnClass(得到列名的类)、getValueAt(得到表格中单元格的值),而TableModel的方法isCellEditable和setValueAt()的默认实现没有被重写,因而本例不支持JTable单元的编辑。,例7-6 以表格格式显示数据库的查询结果的程序设计的思路(续),ResultStTableModel类的方法setQuery执行查询SQL语句,并调用方法fireTableStructureChanged(从AbstractTableModel类继承),通知任何以对象ResultStTableModel为表格模型的JTable,模型的结构已经发生变化,通知JTable用新的ResultSet数据重新填充JTable的行和列。SetQuery方法中抛出的任何异常被传递给调用者。ResultStTableModel类的定义代码如下:,例7-6 以表格格式显示数据库的查询结果的程序设计的思路(续),DispalyQueryResults类负责创建GUI;建立数据库驱动程序列的名称、数据库的URL、和要执行的查询SQL语句的字符串,并将它们传递给创建的ResultStTableModel对象;利用ResultStTableModel对象再创建JTable的对象,并将JTable对象添加到可滚动的面板中,此滚动的面板加入到Frame中。类DisplayQueryResults的代码,例7-6 以表格格式显示数据库的查询结果的程序执行结果,组合各数据库应用模块,前面定义和生成的各个数据库应用模块,应组合生成一完整的应用。Design for Menu and Multiple window。定义一主框架JFrame,在JFrame的构造方法中加入菜单条。this.setJMenuBar(jMenuBar1);定义JMenuBar、JMenu和MenuItem,in MenuItem中写事件代码(调用各个数据库应用模块)Multiple window的切换在创建子窗口对象时通过构造方法将父窗口对象传递给子窗口,以便子窗口返回到父窗口时,恢复父窗口使用。子窗口对象.setVisible(true);父窗口对象.setVisible(false);,组合各数据库应用模块(续),为了加快访问数据库的操作,将定义和生成在各个数据库应用模块中数据库的连接和关闭操作抽象出来放在一单独的类中,此类中的方法和域成员全部是static。在进入系统时,调用此类的数据库连接方法,在退出系统时调用数据库关闭操作方法。,Menu Design,Note:onle in MenuItem中写事件代码.in menu 中写事件代码运行无结果.,小结,Java程序使用JDBC API 与数据库进行通信,并用它操纵数据库中的数据。JDBC驱动器实现与某个数据库的接口。Java.sql包提供访问数据库的类和接口。SQL是所有关系数据库的查询通用语言。本章详细讨论了JDBC API 中的主要类和接口,包括DriverManeger、Connection、Statement、PreparedStatement、CallableStatement、ResultSet、ResultSetMetaData、DatabaseMetaData,以及GUI组件JTable和AbstractTableModel类以二维表格形式显示查询结果,并结合实例讨论了如何利用这些类对数据库进行插入、修改、删除和查询操作的示范性的程序设计。,作业,书上本章习题中:13.45.,

    注意事项

    本文(模块7Java数据库编程.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开