JDBC12中几个最重要的接口和类_第1页
JDBC12中几个最重要的接口和类_第2页
JDBC12中几个最重要的接口和类_第3页
全文预览已结束

下载本文档

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

文档简介

JDBC1.2中几个最重要的接口和类1、DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是DriverManager.getConnection()。正如名称所示,该方法将建立与数据库的连接。2、 Connection:次类代表与数据库的连接。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。3、 Statement对象用于将SQL语句发送到数据库中。实际上有三种Statement对象,它们都作为在给定连接上执行SQL语句的包容器:Statement、PreparedStatement(从Statement继承而来)和CallableStatement(从PreparedStatement继承而来)。它们都专用于发送特定类型的SQL语句:Statement对象用于执行不带参数的简单SQL语句;PreparedStatement对象用于执行带或不带IN参数的预编译SQL语句;CallableStatement对象用于执行对数据库已存储过程的调用。Statement接口提供了执行语句和获取结果的基本方法。PreparedStatement接口添加了处理IN参数的方法;而CallableStatement添加了处理OUT参数的方法。4、 ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法(这些get方法可以访问当前行中的不同列)提供了对这些行中数据的访问。ResultSet.next方法用于移动到ResultSet中的下一行,使下一行成为当前行。JDBC1.0的规范只提供光标在ResultSet的向后移动,只有next()方法,而没有previous。方法。在JDBC2.0中,增加了previous()方法。结果集一般是一个表,其中有查询所返回的列标题及相应的值。例如,如果查询为SELECTa,b,cFROMTable1,则结果集将具有如下形式:cab12345北京CA83472上海WA83492重庆MA下面的代码段是执行SQL语句的示例。该SQL语句将返回行集合,其中列1为int,列2为String,而列3则为字节数组br>java.sql.Statementstmt=conn.createStatement();java.sql.ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(r.next()){//打印当前行的值。inti=r.getInt("a");Strings=r.getString("b");floatf=r.getFloat("c");System.out.println("ROW="+i+""+s+""+f);}CotifMctioi]CctitiectictiScitomtttitCotmactiotiResultseiRssulEsetStfitcnictitSCiitemctKCotifMctioi]CctitiectictiScitomtttitCotmactiotiResultseiRssulEsetStfitcnictitSCiitemctK我们目前所知晓的JDBC驱动程序可分为以下四个种类:1、JDBC-ODBC桥加ODBC驱动程序:JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服5、务器代码。2、 本地API-部份用Java来编写的驱动程序:这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。3、JDBC网络纯Java驱动程序:这种驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。4、 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已在着手做这件事了。第3、4类驱动程序将成为从JDBC访问数据库的首选方法。第1、2类驱动程序在直接的纯Java驱动程序还没有上市前将会作为过渡方案来使用。对第1、2类驱动程序可能会有一些变种(下表中未列出),这些变种要求有连接器,但通常这些是更加不可取的解决方案。第3、4类驱动程序提供了Java的所有优点,包括自动安装(例如,通过使用JDBC驱动程序的appletapplet来下载该驱动程序)。什么是事务的ACID特性就是原子特性,不可再分,一个事务内的语句只要有一条出错就都恢复到没执行时的状态(回滚)。就是一个事务要么所有语句都执行,要出错就等于一个都没执行数据库系统必须维护事务的以下特性:原子性(Atomicity),—致性(Consistency),隔离性(Isolation),持久性(Durability).这些特性简称ACID。事务的标准定义:指作为单个逻辑工作单元执行的一系列操作,而这些逻辑工作单元需要具有原子性,一致性,隔离性和持久性四个属性,统称为ACID特性。事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQLServer能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。:事务通常是以BEGINTRANSACTION开始,以COMMIT或ROLLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。:事务运行的三种模式:A:自动提交事务每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。B:显式事务以BEGINTRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。C:隐性事务在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。⑷:事务的特性(ACID特性)A:原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。B:一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。C:隔离性(Isolation)一个事务的执行不能被其他事务干扰。D:持续性/永久性(Durability)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。注:事务是恢复和并发控制的基本单位。((1)是回答事务的概念到底是什么——即你的提问,至于(2)、(3)、(4)只是作的稍许补充而已,不必深究,呵呵……)进程死锁死锁定义:一组进程中,任何一个进程都由于在等待该组其他进程占用的某些资源并且永远无法得到,这种现象被称为进程死锁,这组进程被称为死锁进程。关于死锁的一些结论:a.参与死锁的进程必须要>=两个b.至少要有两个进程占有了资源c.参与死锁的所有进程都在等待资源产生死锁的四个基本条件:a.循环等待b.不可剥夺c.互斥使用d.请求和保持多线程之避免死锁2008-10-0711:08概念:死锁是指永久阻塞一组争用一组资源的线程。导致死锁的最常见情况是自死锁或递归死锁。在自死锁或递归死锁中,线程尝试获取已被其持有的锁。递归死锁是在编程时很容易犯的错误。另一种死锁的情况就是多个线程分别获取一部分资源,并且等待循环等待其他线程已经获取的资源。避免死锁有一般的银行家算法,该算法假设每个客户有可能在没有得到最大资源的情况下也能工作。银行家算法对每一个请求进行检查,如果它会导致不安全状态,则不满足该请求,否则便满足。检查状态是否安全是看是否有足够的资源满足距最大需求最近的客户。对于每个线程都需要得到最大资源才能工作的情况下,避免死锁有如下的一般编程实践:请勿尝试在可能会对性能造成不良影响的长时间操作(如I/O

温馨提示

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

评论

0/150

提交评论