zoukankan      html  css  js  c++  java
  • JDBC

    一、什么是JDBC?

      Java语言访问数据库的一种规范,是一套API

      JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的存取操作。

      JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE。这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。

       为了使客户端程序独立于特定的数据库驱动程序,JDBC规范建议开发者使用基于接口的编程方式,即尽量使应用仅依赖java.sql及javax.sql中的接口和类。

     

    二、JDBC驱动程序:

      什么是JDBC驱动程序?

      这些是各个数据库厂家根据JDBC的规范制作的JDBC实现类。

    JDBC驱动程序的四种类型:

    1. 第一种类型的驱动程序的实现是通过将JDBC的调用全部委托给其它编程接口来实现的,比如ODBC。这种类型的驱动程序需要安装本地代码库,即依赖于本地的程序,所以便携性较差。比如JDBC-ODBC桥驱动程序

    2. 第二种类型的驱动程序的实现是部分基于Java语言的。即该驱动程序一部分是用Java语言编写,其它部分委托本地的数据库的客户端代码来实现。同类型1的驱动一样,该类型的驱动程序也依赖本地的程序,所以便携性较差

    3. 第三种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序通常由某个中间件服务器提供,这样客户端程序可以使用数据库无关的协议和中间件服务器进行通信,中间件服务器再将客户端的JDBC调用转发给数据库进行处理

    4. 第四种类型的驱动程序的实现是全部基于JAVA语言的。该类型的驱动程序中包含了特定数据库的访问协议,使得客户端可以直接和数据库进行通信

     

    DriverManager:这个是一个实现类,它是一个工厂类,用来生产Driver对象的

    这个类的结构设计模式为工厂方法

    Driver:这是驱动程序对象的接口,它指向一个实实在在的数据库驱动程序对象,那么这个数据库驱动程序对象是从哪里来的呢?

    DriverManager工厂中有个方法:getDriver(String URL),通过这个方法可以得到驱动程序对象,这个方法是在各个数据库厂商按JDBC规范设计的数据库驱动程序包里的类中静态实现的,也就是在静态块中

    Connection:这个接口可以制向一个数据库连接对象,那么如何得到这个连接对象呢?

    是通过DriverManager工厂中的getConnection(String URL)方法得到的

    Statement:用于执行静态的SQL语句的接口,通过Connection中的createStatement方法得到的

    Resultset:用于指向结果集对象的接口,结果集对象是通过Statement中的execute等方法得到的

     

    三、JAVA使用JDBC访问数据库的步骤:

    1.     得到数据库驱动程序

    2.     创建数据库连接

    3.     执行SQL语句

    4.     得到结果集

    5.     对结果集做相应的处理(增,删,改,查)

    6.     关闭资源:这里释放的是DB中的资源

     

    参考:

    http://www.360doc.com/content/07/1213/10/15458_890615.shtml

  • 相关阅读:
    Open source cryptocurrency exchange
    Salted Password Hashing
    95. Unique Binary Search Trees II
    714. Best Time to Buy and Sell Stock with Transaction Fee
    680. Valid Palindrome II
    Java compiler level does not match the version of the installed Java project facet.
    eclipse自动编译
    Exception in thread "main" java.lang.StackOverflowError(栈溢出)
    博客背景美化——动态雪花飘落
    java九九乘法表
  • 原文地址:https://www.cnblogs.com/549294286/p/3559329.html
Copyright © 2011-2022 走看看