• JDBC——入门知识【转】


     

    1. 什么是JDBC:Java数据库连接性(Java Database Connectivity) API,允许用户从Java应用程序中访问任何表格化数据源。

    2. JDBC除了提供到更宽范围的SQL数据库的连接外,也允许用户访问其他的表格数据源,如:电子表格。

    3. JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。这意味着重要的是执行原SQL语句,然后检索它们的结果。

    4. JDBC2.0 API包括两个包:java.sql和jvax.sql。

    5. JDBC3.0规范,于2001年10月发布,引入几个特性,包括支持各种数据类型,附加的元数据能力,并增加了大量的接口。

    6. JDBC的三种主要功能如下:

    •  建立与数据库或其他表列数据源的连接;
    • 向数据库发送SQL命令
    • 处理结果

    7. 使用JDBC API访问数据库,并处理结果集的主要步骤:

    • 装载JDBC驱动程序
    • 获取数据库连接
    • 创建一条语句,执行SQL环境(Statement)
    • 执行SQL查询
    • 从ResultSet中检索数据
    • 释放资源

    8. 装载JDBC驱动程序的几种方式:

    • Class.forName("驱动类的全限定名");
    • Driver d = new 驱动类全限定名();
      DriverManager.registerDriver(d); // 可以省略此句
    • java -Djdbc.drivers = 驱动类全限定名
      此种方式是在启动JVM时就将驱动类加载进Java虚拟机

    9. 获取数据库连接

        Connection conn = DriverManager.getConnection( url, user, password );

    10. 创建执行SQL环境

        Statement stmt = conn.createStatement();

    11. 执行SQL

        String sql = "select rownum, sysdate from dual";

        ResultSet rs = stmt.executeQuery(sql);

    12. 处理结果集

        while(rs.next()) {

            int i = rs.getInt(1);

            Date d = rs.getDate(2);

            System.out.println(i + " , " + d);

        }

        // 注意,JDBC结果集列是从“1”开始的,而其它地方如hibernate等都是从“0”开始的

    13. 释放资源

        if(rs != null) rs.close();

        if(stmt != null) stmt.close();

        if(conn != null) conn.close();

    14. 常见的几种数据库连接方式:

    • Oracle数据库:
      Class.forName("oracle.jdbc.driver.OracleDriver");
      String url = "jdbc:oracle:thin:@[hostName]:[port]:[DB]";
    • MySQL数据库:
      Class.forName("");
      String url = "jdbc:mysql://[hostName]:[port]/[DB]";

    15. JDBC驱动程序类型(4种)

    • JDBC-ODBC桥 + ODBC驱动程序
      优点:
      它提供连接几乎所有平台上的所有数据库能力;
      它可能是访问低端桌面数据库和应用程序的唯一方式。
      缺点:
      ODBC驱动程序也必须加载到目标机上;
      JDBC和ODBC转换影响性能。
    • 本地API部分Java驱动程序
      优点:
      比前一种驱动程序快得多
      缺点:
      需要在目标机上有本地代码;
      它们依赖的Java本地接口在不同JVM的提供商间的实现不一致。
    • JDBC-Net纯Java驱动程序
      优点:
      不要求客户上有任何本地二进制代码;
      不需要客户安装;
      支持多个网络选项。
      缺点:
      由于网络接口将体系结构复杂化,因此很难建立。
    • 本地协议纯Java驱动程序
      目前的驱动程序都是使用这种,比JDBC-ODBC桥快得多,100%Java驱动程序,本地协议。
     
     
  • 相关阅读:
    如何学习 websocket ?
    如何使用 C++ Inja html template 模板
    使用 QSqlTableModel 模型向数据库中插入数据时,为什么使用 rowCount 函数只能返回 256 最大值?
    windows 如何配置 Go 环境(Zip archive 方式)?
    qt 如何使用 lamda 表达式接收线程中发射的数据,并在里面更新 UI ?
    如何使用 VLD 检测程序中的内存泄漏?
    Qt 在相同的线程中可以在信号中传递未注册的元对象,在非相同线程中则不能传递未测试的对象,为什么呢?
    《LeetBook》leetcode题解(5):Longest Palindromic [M]——回文串判断
    《LeetBook》leetcode题解(4): Median of Two Sorted Arrays[H]——两个有序数组中值问题
    《Algorithms算法》笔记:元素排序(4)——凸包问题
  • 原文地址:https://www.cnblogs.com/Lxiaojiang/p/6708538.html
Copyright © 2020-2023  润新知