论坛首页 入门技术论坛

JDBC资料辅导(1)

浏览 2015 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-03   最后修改:2008-12-03

一、JDBC原理概述

1,JDBC是一套协议,是JAVA开发人员和数据库厂商达成的协议,也就是由Sun定义一组接口,由数据库厂商来实现,
   并规定了JAVA开发人员访问数据库所使用的方法的掉用规范。

2,JDBC的实现是由数据库厂商提供,以驱动程序形式提供。

3,JDBC在使用前要先加载驱动。
  JDBC对于使用者要有一致性,对不同的数据库其使用方法都是相同的。

4、driver开发必须要实现Driver接口。
     JDBC驱动程序的类型

  目前比较常见的JDBC驱动程序可分为以下四个种类:

  (1)JDBC-ODBC桥加ODBC驱动程序

  JavaSoft桥产品利用ODBC驱动程序提供JDBC访问。
    注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上。
    因此,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

  (2)本地API

  这种类型的驱动程序把客户机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来下载该驱动程序)。
 
5、JDBC的API

java.sql包和javax.sql包
DriverManager类(驱动管理器),它可以创建连接,它本身就是一个创建Connection的工厂(Factory)。
Driver接口  入口
Connection接口,会根据不同的驱动产生不同的连接
Statement接口,发送sql语句
ResultSet接口(结果集),是用来接收select语句返回的查寻结果的。其实质类似于集合。 

以上的资源都需要释放,释放的是数据库的资源

JDBC应用步骤
1,注册加载一个driver驱动
2,创建数据库连接(Connection)
3,创建一个Statement(发送sql)
4,执行sql语句
5,处理sql结果(select语句)
6,关闭Statement
7,关闭连接Connection。

注意:6,7两个步骤势必须要做的,因为这些资源是不会自动释放的,必须要自己关闭

访问Oracle的数据库的驱动名字叫o加到环境变量PATH中。
jdbc14.jar,这个jar文件中出访的驱动程序的.class文件
要使用这个驱动程序,要先将他
一,注册加载驱动driver,也就是强制类加载
    1、Class.forName(driver);
       driver = "oracle.jdbc.driver.OracleDriver";

    2、Driver d=new Driver类();
       Driver d = new oracle.jdbc.driver.OracleDriver();
       DriverManager.registerDriver(d);
      
    3、编译时利用虚拟机的系统属性
       java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver 类名(文件)      

    Oracle的Driver的全名oracle.jdbc.driver.OracleDriver
    mysql的Driver的全名com.mysql.jdbc.Driver
    SQLServer的Driver的全名com.microsoft.jdbc.sqlserver.SQLServerDriver

二,创建连接
    DriverManager.getConnection(String url,String username,String password);
    Connection连接是通过DriverManager的静态方法getConnection(.....)来得到的,这个方法的实质是把参数传到实际的Driver中的connect()方法中来获得数据库连接的。
    Oracle的URL值是由连接数据库的协议和数据库的IP地址及端口号还有要连接的库名(DatebaseName)
    Oracle URL的格式
    jdbc:oracle:thin:(协议)@XXX.XXX.X.XXX:XXXX(IP地址及端口号):XXXXXXX(所使用的库名)
    例:jdbc:oracle:thin:@192.168.0.39:1521:TARENADB
    MySql URL的写法
    例: jdbc:mysql://192.168.8.21:3306/test
    SQLServer URL的写法
    例:jdbc:microsoft:sqlserver://192.168.8.21:1433

    java -Djdbc.drivers=驱动全名 类名

    使用系统属性名,加载驱动 -D表示为系统属性赋值
   
    使用Connection对象获得一个Statement,Statement中的executeQuery(String sql) 方法可以使用select语句查询,并且返回一个结果集 ResultSet通过遍历这个结果集,
    可以获得select语句的查寻结果,ResultSet的next()方法会操作一个游标从第一条记录的前边开始读取,直到最后一条记录。
    executeUpdate(String sql) 方法用于执行DDL和DML语句,可以update,delete操作。
注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接是才可以使用的,
      所以在使用结束之后有可能起他的Statement还需要连接,所以不能现关闭Connection。 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics