码迷,mamicode.com
首页 > 数据库 > 详细

JDBC 入门 - 简介

时间:2015-01-24 15:45:43      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

简介

JDBC API

JDBC 是 Java 数据库连接(Java DataBase Connectivity) 的缩写, 它提供了 Java 访问各种关系型数据库的一系列 API, 功能包括:

  • 建立数据库连接
  • 创建 SQL 语句
  • 执行 SQL 语句
  • 查看或修改结果集

JDBC API 中主要几个接口:

  • DriverManager: 由于 Java 程序可能会操作多个数据库, 所以我们可能需要来自于不同数据库的连接. Driver Manager 就是用来管理一个或多个数据库驱动, 并根据需要返回不同的连接.
  • Driver: 用于管理于数据库的通信. 由 Driver Manager 内部管理, 一般很少直接适用 Driver 类, 更多的是使用 Driver Manager.
  • Connection : 提供了与数据库交互的所有方法.
  • Statement : 提供了与 SQL包 括存储过程 相关的操作.
  • ResultSet: 提供了与 SQL 查询返回结果集相关的操作
  • SQLException: 处理与数据库操作相关的异常

JDBC 驱动

JDK 中只定义了操作数据库相关的 API, 这些接口的实现, 也就是对不同数据操作的实现, 并不可能包含在 JDK 中. 这些接口一般都由第三方实现, 被称为 JDBC 驱动(driver).

JDBC 驱动的实现方式主要有四种:

1) JDBC-ODBC 桥. JDBC 驱动由 ODBC 桥接而来, 在 JAVA 刚出来的时候, 支持 ODBC 的驱动占绝大多数, 所以让这些数据库能支持 Java 的最快方式就是桥接:

技术分享

2) Native-API 驱动. 对 JDBC API 的调用将会被转化成本地 C/C++ 驱动的调用, 这种方式比起第一种方式要快一些, 因为它没有了对 ODBC 的调用. 但是这种也是有局限的, 由于这些 C/C++ 本地驱动是由数据库厂商提供, 如果要更换数据库, 那么这些这些代码也要修改.

技术分享

Oracle Call Interface (OCI) 就是属于这种类型, 以下是 JDBC 调用 OCI 的一个例子:

    String  query  = "select /*+ result_cache */ * from emp where empno < : 1";
       ((oracle.jdbc.OracleConnection)conn).setImplicitCachingEnabled(true);
       ((oracle.jdbc.OracleConnection)conn).setStatementCacheSize(10);
       PreparedStatement  pstmt;
       ResultSet rs;

        for (int j = 0 ; j < 10 ; j++ )
        {
           pstmt  = conn.prepareStatement (query);
           pstmt.setInt(1,7500);
           rs  = pstmt.executeQuery();
             while (rs.next( ) )
            {     // see the values  }
              rs.close;
              pstmt.close( ) ;
            }
        }

3) 纯Java中间件驱动. 使用了三层结构, 本地的 JDBC API 调用通过网络协议发送到中间件服务器, 中间件服务器解析后再调用实际的JDBC驱动(1,2,4型).如图:

技术分享

4) 纯Java驱动. 数据库厂商提供了 Java 驱动, 它比起第一和第二种类型驱动要快, 并且不像第三种驱动那样依赖网络.

技术分享

JDBC 入门 - 简介

标签:

原文地址:http://www.cnblogs.com/pragmatic/p/4245902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!