[关闭]
@MRsunhuimin 2019-08-14T02:17:59.000000Z 字数 2469 阅读 146

JDBC基础(08.10-08.11)

web

作者:孙慧敏

1. 数据持久化

    持久化:把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。

    持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。 

2. Java 中的数据存储技术

    在Java中,数据库存取技术可分为如下几类:
        1. JDBC直接访问数据库
        2. JDO技术
        3. 第三方O/R工具,如Hibernate, ibatis 等

    JDBC是java访问数据库的基石,JDO,Hibernate等只是更好的封装了JDBC。

3. JDBC基础

    JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源

    JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。

    JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

4. JDBC体系结构

JDBC接口(API)包括两个层次:

    1. 面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库,执行SQL语句,获得结果)。

    2.面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。

5. 补充:ODBC

  • 早期对数据库的访问,都是调用数据库厂商提供的专有的 API。为了在 Windows 平台下提供统一的访问方式,微软推出了 ODBC(Open Database Connectivity,开放式数据库连接),并提供了 ODBC API,使用者在程序中只需要调用 ODBC API,由 ODBC 驱动程序将调用转换成为对特定的数据库的调用请求
  • 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS(database manager system),不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

6. 补充:JDBC-ODBC桥

  • JDBC-ODBC 桥本身也是一个驱动,利用这个驱动,可以使用 JDBC-API 通过ODBC 去访问数据库。这种机制实际上是把标准的 JDBC 调用转换成相应的 ODBC 调用,并通过 ODBC 访问数据库
  • 因为需要通过多层调用,所以利用 JDBC-ODBC 桥访问数据库的效率较低
  • 在 JDK 中,提供了 JDBC-ODBC 桥的实现类(sun.jdbc.odbc.JdbcOdbcDriver)

7. JDBC API

    JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。

8. Driver 接口

  • Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现
  • 在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现

8. 使用forname()加载与注册 JDBC 驱动

  • 加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名
  • DriverManager 类是驱动程序管理器类,负责管理驱动程序
  • 通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例

9. 建立连接

  • 可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接
  • JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
  • JDBC URL的标准由三部分组成,各部分间用冒号分隔。
    • jdbc:<子协议>:<子名称>
    • 协议:JDBC URL中的协议总是jdbc
    • 子协议:子协议用于标识一个数据库驱动程序
    • 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息

10. 几种常用数据库的JDBC URL

    jdbc:mysql://localhost:3306/test 
    协议:子协议:子名称
  • 对于 Oracle 数据库连接,采用如下形式:
    jdbc:oracle:thin:@localhost:1521:sid
  • 对于 SQLServer 数据库连接,采用如下形式:
    jdbc:microsoft:sqlserver//localhost:1433; DatabaseName=sid
  • 对于 MYSQL 数据库连接,采用如下形式:
    jdbc:mysql://localhost:3306/sid

11.访问数据库

  • 数据库连接被用于向数据库服务器发送命令和 SQL 语句,在连接建立后,需要对数据库进行访问,执行 sql 语句
    在 java.sql 包中有 3 个接口分别定义了对数据库的调用的不同方式:
    Statement
    PrepatedStatement
    CallableStatement

12. Statement

  • 通过调用 Connection 对象的 createStatement 方法创建该对象
    该对象用于执行静态的 SQL 语句,并且返回执行结果
  • Statement 接口中定义了下列方法用于执行 SQL 语句:
    ResultSet excuteQuery(String sql)
    int excuteUpdate(String sql)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注