Java程序设计与应用 课件【ch11】JDBC编程_第1页
Java程序设计与应用 课件【ch11】JDBC编程_第2页
Java程序设计与应用 课件【ch11】JDBC编程_第3页
Java程序设计与应用 课件【ch11】JDBC编程_第4页
Java程序设计与应用 课件【ch11】JDBC编程_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC编程第十一章Java程序设计与应用新工科建设之路·计算机类规划教材01JDBC概述PARTONEJDBC概述JDBC的全称为JavaDataBaseConnectivity,是一套面向对象的应用程序接口,它提供了统一的访问各类关系型数据库的标准接口,为各个数据库厂商提供了标准接口的实现。通过使用JDBC,开发人员可以用Java编程和标准的SQL语句编写完整的数据库应用程序。JDBC概述在JDBC问世以前,各个数据库厂商执行各自的一套API,使得程序访问数据库很麻烦,特别在更换数据库时,需要修改大量代码,很不方便。JDBC的发布获得了巨大成功,并很快成为Java访问数据库的标准,并得到几乎所有数据库厂商的支持。JDBC概述JDBC是一种底层API,需要注意的是,JDBC并不能直接访问数据库,必须依赖数据库厂商提供的JDBC驱动程序。在程序中由JDBC和具体的数据库驱动联系,用户就不必直接与底层的数据库交互,使代码的通用性更强。JDBC概述应用程序使用JDBC访问数据库的方式如图11-1所示。JDBC概述从图11-1可以看出,JDBC是Java应用程序和数据库之间的一个桥梁,是一个规范而不是一个实现方式,能够执行SQL语句,各种不同类型的数据库都有相应的实现。当应用程序使用JDBC访问特定的数据库时,需要通过不同的数据库驱动与不同的数据库进行连接,只有正确连接之后,才可以进行数据库的相应操作。02JDBC常用的接口和类PARTTWOJDBC常用的接口和类Driver类每种数据库的驱动程序都提供了一个实现java.sq1.Driver的类,简称Driver类。在加载某一驱动程序的Driver类时,先要创建自己的实例并向java.sq1.DriverManager类注册该实例。JDBC常用的接口和类Driver类通常情况下,java.lang.Class类的静态方法forName(StringclassName)可以加载欲链接数据库的Driver类,该方法的入口参数为欲加载Driver类的完整路径。成功加载后,会将Driver类的实例注册到DriverManager类中。如果加载失败,将抛出ClassNotFoundException异常,即未找到指定Driver类的异常。JDBC常用的接口和类DriverManager类DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在数据库和驱动程序之间建立连接。同时,DriverManager类也处理如驱动程序登录时间限制及登录和跟踪消息的显示等工作。JDBC常用的接口和类Connection接口Connection接口代表与特定数据库的连接,在连接的上下文中执行SQL语句并返回结果。也可以通过getMetaData()方法获得由数据库提供的相关信息,如数据表、存储过程等。Connection接口提供的常用方法如表11-2所示。JDBC常用的接口和类JDBC常用的接口和类Statement接口Statement接口用来执行静态的SQL语句,并返回指向结果。例如,对于数据库的操作insert、update和delete语句,调用executeupdate(Stringsql)方法,而select语句则调用executeQuery(Stringsql)方法,并返回一个ResultSet实例。Statement接口对象可以通过Connection实例的createStatement()方法获得。JDBC常用的接口和类Statement接口提供的常用方法如表11-3所示。JDBC常用的接口和类PreparedStatement接口PreparedStatement接口继承并扩展了Statement接口,用来执行动态的SQL语句,即包含参数的SQL语句。因为在实际开发过程中通常需要将程序中的变量作为SQL语句的查询条件。同时通过PreparedStatement实例执行的动态SQL语句,进行预编译并保持到PreparedStatement实例中,从而可以反复高效地执行该SQL语句。JDBC常用的接口和类PreparedStatement接口中的常用方法如表11-4所示。JDBC常用的接口和类JDBC常用的接口和类ResultSet接口ResultSet接口类似于一个数据表,通过该接口的实例可以获得返回结果集,以及对应数据表的相关信息,如列名和类型等,ResultSet实例通过执行查询数据库的语句生成。ResultSet实例内部有一个指向表格数据行的游标(指针)。JDBC常用的接口和类ResultSet接口执行查询数据库语句返回的ResultSet游标指向数据集第一条记录之前,通过next()方法可以将游标移动到下一行,如果没有下一行,则返回false。在应用程序中通常使用next()方法作为while循环的条件来迭代ResultSet结果集。JDBC常用的接口和类ResultSet接口默认情况下,ResultSet实例不可以更新,只能向前移动游标,所以只能迭代一次,并且只能是从前到后的顺序。如果需要,可以生成可滚动、可更新的ResultSet实例。03JDBC程序示例PARTTHREEJDBC程序示例通过前面的学习,我们对JDBC及常用接口和类有了一定的了解。本节将讲解如何使用JDBC的常用接口和类来实现一个JDBC程序。如果需要访问数据库,首先要加载数据库的驱动程序,不过只需要第一次访问数据库时加载一次,然后在每次访问数据库时创建一个Connection实例。接着就可以执行操作数据库的SQL语句,并处理返回结果。最后在完成此类操作时销毁前面创建的Connection实例,释放与数据库的连接。JDBC程序示例(1)加载并注册数据库驱动在连接数据库之前,首先需要加载欲连接数据库的驱动程序到JVM中,加载方式如下:JDBC程序示例(2)通过DriverManager获取数据库连接DriverManager类是JDBC的管理层,负责建立和管理数据库连接。通过DriverManager类的静态方法getConnection(Stringurl,Stringuser,Stringpassword)可以建立数据库连接。如:JDBC程序示例(3)通过Connection对象获取Statement对象建立数据库连接的目的是与数据库进行通信,实现方式为执行SQL语句。但Connection对象不能执行SQL语句,SQL语句的执行必须通过Statement实例,创建Statement实例有三种方式:①createStatement():创建基本的Statement对象。②prepareStatement():创建PrepareStatement对象。③prepareCall():创建CallableStatement对象。JDBC程序示例(4)使用Statement实例执行SQL语句所有的Statement实例都有以下3种执行SQL语句的方法:①execute():可以执行任何SQL语句。②executeQuery():主要用来执行查询语句,执行后返回结果集ResultSet对象。③executeUpdate():主要用于执行insert、update和delete语句,执行后返回SQL语句影响的行数。JDBC程序示例(5)操作ResultSet结果集如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象。该对象像一个数据表,保存了查询结果,程序可以通过ResultSet类提供的方法来操作查询的数据。JDBC程序示例(6)关闭连接,释放资源当操作数据库结束之后,一定要关闭数据库连接。释放资源,包括关闭ResultSet、Statement和Connection等资源。04数据库的基本操作PARTFOUR数据库的基本操作添加数据添加数据分为两种情况,一是一次只添加一条记录,二是一次添加多条记录,即批量添加。PrepareStatment和CallableStatement都是Statement的子类,因此这三种类型的实例都可以完成添加一条记录的操作。①对于Statement实例st添加数据数据库的基本操作添加数据②对于PrepareStatement实例ps添加数据数据库的基本操作添加数据③对于CallableStatement实例cs添加数据数据库的基本操作查询数据查询数据在使用Statement、PrepareStatement和CallableStatement时与添加数据一样,不同的只是SQL语句、创建的存储过程不同。但无论采用哪种方式,都需要执行executeQuery方法,该方法返回结果集,这个结果集不仅包含所有满足查询条件的记录。也包含相应数据表的相关信息,如每一列的名称、类型和列的数量等。数据库的基本操作修改数据修改数据与前面的都类似,可以一次修改一条,也可以一次修改多条,可以参考添加数据的方法。删除数据删除数据与前面的都类似,可以一次删除一条,也可以一次删除多条。05事务处理PARTFIVE事务处理事务概述事务是指一组相互依赖的操作单元的集合,用来保证对数据库的正确修改并保持数据的完整性。如果一个事务的某个单元操作失败,将取消本次事务的全部操作。如银行交易、股票交易和网上购物等,都需要利用事务来控制数据的完整性。事务处理01原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。02一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。事务处理03隔离性(Isolation)隔离性是指当多个用户并发访问数据库时,如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。即对于任意两个并发的事务T1和事务T2,在事务T1看来,事务T2要么在事务T1开始之前就已经结束,要么在事务T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。事务处理04持久性(Durability)持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的。即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。数据库管理系统采用锁机制来管理事务。当多个事务同时修改同一数据时,只允许持有锁的事务修改该数据,其他事务都只能排队等待,直到持有锁的事务释放锁。事务处理JDBC处理事务在JDBC中处理事务,都是通过Connection完成的。同一事务中所有的操作,都在使用同一个Connection对象。Connection中有三个方法与事务有关。事务处理JDBC处理事务(1)AutoCommit(boolean):设置是否为自动提交事务,如果true(默认值为true),则表示自动提交,也就是每条执行的SQL语句都是一个单独的事务,如果设置为false,那么相当于开启事务。conn.setAutoCommit(false)表示开启事务。(2)commit():提交结束事务。(3)rollback

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论