Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问

上传人:E**** 文档编号:89191275 上传时间:2019-05-21 格式:PPT 页数:36 大小:689KB
返回 下载 相关 举报
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问_第1页
第1页 / 共36页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问_第2页
第2页 / 共36页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问_第3页
第3页 / 共36页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问_第4页
第4页 / 共36页
Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问》由会员分享,可在线阅读,更多相关《Java程序设计与实践教程 教学课件 ppt 作者 张诚洁 梁海丽 单元7 Java的数据库访问(36页珍藏版)》请在金锄头文库上搜索。

1、单元7 Java的数据库访问,任务导入,完善单元6产品库存管理系统的登录功能。在单元6中用户登录进行身份验证时,暂时假设用户名为aaa,密码为123,而实际的开发过程中需要从数据库中查询相应的用户名和密码,如果数据库中存在匹配的用户名和密码,则登录成功,进入主界面;否则登录失败。,教学目标,知识目标 掌握JDBC数据库连接的基本步骤和方法。 掌握JDBC API常用接口和类的使用。 掌握数据库查询的方法。 技能目标 能够运用JDBC技术访问数据库。 能够进行数据库编程。,相关知识,什么是JDBC JDBC驱动程序的种类 JDBC API概述 JDBC访问数据库的一般步骤 数据库的查询操作,什么

2、是JDBC,微软为数据库连接制定了一个ODBC(Open DataBase Connectivity)标准,也称为开放数据库连接标准。Java语言中与之相对应的是JDBC(Java DataBase Connectivity),也称为Java的数据库连接。 JDBC是由一系列Java接口规范组成的、用于访问数据库的标准。它只提供了标准的访问接口,但并没有对其进行实现,具体的实现都是由各数据库开发厂商或者其他组织来完成的。,Java数据库应用程序设计,数据库应用程序设计,客户机/服务器 应用程序,ODBC,JDBC,两个常用的API,数据库,执行 SQL 语句,检索查询结果,ODBC,数据库,客

3、户机/服务器 GUI应用程序,ODBC (开放式数据库连接) (Microsoft 提供),插 入,删 除,修 改,应用程序编程接口,查询,JDBC,JDBC (Java 数据库连接) (sun公司提供),Java 应用程序编程接口,Java应用程序,数据库,插 入,修 改,删 除,查询,JDBC驱动程序的种类,JDBC API概述,应用层,Driver,Statement,ResultSet,Connection,各接口,驱动层,java.sql 包,Java连接数据库的步骤,ODBC数据源配置,双击,Java连接数据库的步骤1,第一步加载数据库驱动程序 1)将数据库的JDBC驱动加载到cl

4、asspath中 2)实例化数据库连接驱动类,并将其注册到DriverManager中。下面是一些主流数据库的JDBC驱动加载注册的代码。 /Access数据库 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); /SQL Server7.0/2000 数据库 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“).new Instance(); /Oracle8/8i/9i 数据库(thin模式) Class.forName(“oracle.jdbc.driver.OracleDri

5、ver“).newInstance(); /MySQL数据库 Class.forName(“com.mysql.jdbc.Driver“).newInstance();,Java连接数据库的步骤2,第二步建立数据库连接 建立数据库连接,获得Connection对象,示例如下: /Access数据库 String url=“jdbc:odbc:driver=microsoft access driver (*.mdb);dbq= goods.mdb“; Connection conn=DriverManager.getConnection(url); /SQL Server7.0/2000 数据

6、库 String url=“jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName =pubs“;String user=“sa“; String password=“; Connection conn=DriverManager.getConnection(url,user,password);,Java连接数据库的步骤,/Oracle8/8i/9i 数据库(thin 模式) String url=“jdbc:oracle:thin:localhost:1521:orcl“; String user=“scott“; String pass

7、word=“tiger“; Connection conn=DriverManager.getConnection(url,user,password); /MySQL 数据库 String url=“jdbc:mysql:/localhost:3306/testDB?user=root,Java连接数据库的步骤,可以使用Connection对象的方法getMetaData()取得DatabaseMetaData对象来获取数据源和数据库的各种信息,例如: DatabaseMetaData dbmd=con.getMetaData(); /返回DatabaseMetaData对象 dbmd.ge

8、tURL() /获得数据库的URL dbmd.getUserName() /获得用户名 dbmd.getDriverName() /获得数据库驱动程序名 dbmd.getDriverVersion() /获得数据库驱动程序版本 dbmd.getDatabaseProductName() /获得数据库产品名称 dbmd.getDatabaseProductVersion() /获得数据库产品版本 dbmd.getTables() /获得数据库中数据表的信息(有方法参数) dbmd.getColumns() /获得数据表中各列的信息(有方法参数),Java连接数据库的步骤3,第三步创建语句容器 /

9、建立Statement 对象,用于执行不带参数的SQL语句 Statement stmt=conn.createStatement(); /建立Preparedment 对象,Preparedment对象可以接收带参数的sql语句 String sql=“select * from users where userName=? and password=?“; PreparedStatement pstmt=conn.prepareStatement(sql); pstmt.setString(1,“admin“); /设置第一个参数的值 pstmt.setString(2,“123“); /

10、设置第二个参数的值,Java连接数据库的步骤3,PreparedStatement接口 (预编译的 SQL 语句),PreparedStatement 用于提高运行时效率,执行 PreparedStatement 对象比执行 Statement 对象快,Statement 接口,Java连接数据库的步骤4,第四步执行SQL语句 /执行静态SQL查询 String sql=“select * from users“; ResultSet rs=stmt.executeQuery(sql); /执行动态SQL查询 ResultSet rs=pstmt.executeQuery(); /执行Inse

11、rt、Update、Delete等语句,先定义SQL int i=stmt.executeUpdate(sql);/执行成功,返回所修改的记录数;否则返回 0,Java连接数据库的步骤5,第五步访问结果记录集ResultSet对象 Statement对象将SQL语句封装起来交给数据库引擎,执行Select查询语句,将得到结果集ResultSet对象接口。ResultSet对象封装了执行SQL语句的返回结果,以后可根据需要,在屏幕上显示结果或做进一步的处理。,结果集-ResultSet,ResultSet 对象完全依赖于 Statement 和Connection对象 每次执行 SQL 语句时,

12、都会用新的结果重写结果集 当相关的 Statement 关闭时,ResultSet 对象会自动关闭,Next( ),get(),此方法将光标从 当前位置下移一行,从 ResultSet 对象返回数据,getMetadata()/返回表的元数据,Java连接数据库的步骤5,通过ResultSet的getMetaData方法来创建ResultSetMetaData对象,由这个对象可获取ResultSet对象的列的编号、类型和属性的相关信息。例如: ResultSetMetaData rsmd=rs.getMetaData(); rsmd.getColumnCount(); /获取列(字段)数 rs

13、md.getColumnName(列号);/获取指定列(字段)的列名,Java连接数据库的步骤5,通过ResultSet的getMetaData方法来创建ResultSetMetaData对象,由这个对象可获取ResultSet对象的列的编号、类型和属性的相关信息。例如: ResultSetMetaData rsmd=rs.getMetaData(); rsmd.getColumnCount(); /获取列(字段)数 rsmd.getColumnName(列号);/获取指定列(字段)的列名,Java连接数据库的步骤5,ResultSet对象默认是不可更新的,仅有一个向前移动的指针。因此,只能迭

14、代一次,并且只能按从第一行到最后一行的顺序进行。如果希望生成可滚动和可更新的ResultSet对象。则应在createStatement方法中加入如下的两个参数,即 Statement st=con.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);,结果集的类型,可更新,不可更新,结果集不可更新,所以能够提供最大可能的并发级别。,结果集可更新,但只能提供受限的并发级别,结果集,CONCUR_UPDATABLE,CONCUR_READ_ONLY,结果集的类型,可滚动,不可滚动,光标仅向

15、前移动,光标可前后移动,也可移动 至与当前位置相对的某一行,如果对数据库做了更改, 则新值是可见的,结果集,TYPE_SCROLL_INSENSITIVE,TYPE_SCROLL_SENSITIVE,TYPE_FORWARD_ONLY,Java连接数据库的步骤6,第六步依次将对象关闭,释放所占用的资源 rs.close(); stmt.close(); conn.close();,注意: 执行关闭操作时可能会抛出异常,所以需要进行异常处理 关闭对象的顺序与建立的顺序正好是相反的,也就是说建立时是由外到内,而关闭时则是由内到外,最后再关闭连接。,数据库的查询操作,String str = “se

16、lect * from tb_score“; Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(str);,使用 JDBC 编写此查询,则代码为:,案例7-1 查询成绩表tb_score的所有记录并输出。,任务一完成用户登录界面,代码见教材196页,任务导入,任务二:通过如图所示的图形用户界面录入入库产品的信息并进行信息的有效性验证,其中操作员即登录的用户,入库时间为当前时间,并将数据保存到数据库的tb_product_in表中。同时修改库存表中相应产品的数量。如果库存表tb_ product_store中没有对应的产品,则在库存表中插入一条新记录。,教学目标,知识目标 进一步熟悉JDBC连接数据库的一般步骤。 掌握数据库中数据的增、删、改的操作方法。 技能目标 能够利用JDBC对数据库进行增、删

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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