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
的标准由三部分组成,各部分间用冒号分隔。
-
jdbc
:<子协议>:<子名称>子名称>子协议> -
协议:
JDBC URL
中的协议总是jdbc
-
子协议:子协议用于标识一个数据库驱动程序
-
子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息
常用数据库的 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
语句:
-
ResultSet excuteQuery(String sql)
-
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
执行声明的容器,他包含了两个重要的子类型
Java.sql.PreparedSatement
用于执行预编译的sql
声明Java.sql.CallableStatement
用于执行数据库中存储过程的调用
java.sql.ResultSet
对于给定声明取得结果的途径