Blog A Paranoid Guy

JDBC学习笔记

2016-06-19
 

Driver接口

  • Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现

  • 在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类( java.sql.DriverManager )去调用这些 Driver 实现

加载与注册JDBC驱动

  • 加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名

  • DriverManager 类是驱动程序管理器类,负责管理驱动程序

  • 通常不用显式调用 DriverManager 类的 registerDriver()方法来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例

建立连接

  • 可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接

  • JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。

  • JDBC URL 的标准由三部分组成,各部分间用冒号分隔。

  1. jdbc :<子协议>:<子名称>

  2. 协议:JDBC URL 中的协议总是 jdbc

  3. 子协议:子协议用于标识一个数据库驱动程序

  4. 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息

常用数据库的 JDBC URL

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

Statement

  • 通过调用 Connection 对象的 createStatement 方法创建该对象、

  • 该对象用于执行静态的 SQL 语句,并且返回执行结果

  • Statement 接口中定义了下列方法用于执行 SQL 语句:

  1. ResultSet excuteQuery(String sql)

  2. int excuteUpdate(String sql)

PreparedStatement

  • 可以通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象

  • PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句

  • PreparedStatement 对象所代表的 SQL 语句中的参数用问号 (?) 来表示,调用 PreparedStatement 对象的 setXXX() 方法来设置这些参数。 setXXX() 方法有两个参数,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值

总结

  • java.sql.DriverManager 用来装载驱动程序,获取数据库连接

  • java.sql.Connection 完成对某一指定数据库的联接

  • java.sql.Statement 在一个给定的连接中作为 SQL 执行声明的容器,他包含了两个重要的子类型

  1. Java.sql.PreparedSatement 用于执行预编译的 sql 声明
  2. Java.sql.CallableStatement 用于执行数据库中存储过程的调用
  • java.sql.ResultSet 对于给定声明取得结果的途径

Comments