一、Jdbc简介
JDBC代表数据库连接(Java DataBase Connectivity)。
JDBC是用于在编程语言中与数据库连接的API。
1. Jdbc架构
JDBC体系结构由两层组成:
- JDBC API:提供应用程序到JDBC管理器连接。
- JDBC驱动程序API:支持JDBC管理器到驱动程序连接。
2. 常见的Jdbc组件
JDBC API提供以下接口和类:
- DriverManager:用于管理数据库驱动程序列表。
- Driver:此接口处理与数据库服务器的通信。
- Connection:此接口具有用于联系数据库的所有方法。
- Statement:此接口创建的对象将SQL语句提交到数据库。
- ResultSet:保存数据库检索后的数据。
- SQLException:处理数据库应用程序中发生的任何错误。
二、Jdbc数据库连接
建立Jdbc连接的步骤
- 导入JDBC包:使用Java语言的import语句在Java代码开头位置导入所需的类。
- 注册JDBC驱动程序:使JVM将所需的驱动程序实现加载到内存中,从而可以满足JDBC请求。
- 数据库URL配置:创建一个正确格式化的地址,指向要连接到的数据库。
- 创建连接对象:调用DriverManager对象的getConnection()方法来建立实际的数据库连接。
导入JDBC包
要使用标准的JDBC包java.sql.*。
注册JDBC驱动程序
在使用程序之前,必须先注册该驱动程序。
注册驱动程序是将数据库驱动程序的类文件加载到内存中的过程。
只需在程序中一次注册就可以。可以通过两种方式之一来注册驱动程序。
第一种:Class.forName()
推荐使用的方法,因为它使驱动程序注册可配置和便携。
Class.forName("oracle.jdbc.driver.OracleDriver");
第二种:DriverManager.registerDriver()
使用静态DriverManager.registerDriver()方法来注册驱动程序。
如果使用的是非JDK兼容的JVM(如Microsoft提供的),则应使用registerDriver()方法。
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver( myDriver );
数据库URL配置
加载驱动程序后,可以使用DriverManager.getConnection()方法建立连接。
有三个重载的DriverManager.getConnection()方法:
- getConnection(String url)
- getConnection(String url, Properties prop)
- getConnection(String url, String user, String password)
这里每个格式都需要一个数据库URL。 数据库URL是指向数据库的地址,不同的数据库URL是不同的。
MySQL
JDBC驱动程序名称:com.mysql.jdbc.Driver
URL格式:jdbc:mysql://hostname/databaseName
Oracle
JDBC驱动程序名称:oracle.jdbc.driver.OracleDriver
URL格式:jdbc:oracle:thin:@hostname:portNumber:databaseName
PostgreSQL
JDBC驱动程序名称:org.postgresql.Driver
URL格式:jdbc:postgresql://hostname:port/dbname
DB2
JDBC驱动程序名称:com.ibm.db2.jdbc.net.DB2Driver
URL格式:jdbc:db2:hostname:port Number/databaseName
Sybase
JDBC驱动程序名称:com.sybase.jdbc.SybDriver
URL格式:jdbc:sybase:Tds:hostname: portNumber/databaseName
创建连接对象
DriverManager.getConnection()
三、Statement、PreparedStatement和CallableStatement
当获得了与数据库的连接后,就可以与数据库进行交互了。
JDBC Statement,CallableStatement和PreparedStatement接口定义了可用于发送SQL或PL/SQL命令,并从数据库接收数据的方法和属性。
- Statement:用于对数据库进行通用访问,在运行时使用静态SQL语句时很有用。 Statement接口不能接受参数。
- PreparedStatement:当计划要多次使用SQL语句时使用。PreparedStatement接口在运行时接受输入参数。
- CallableStatement:当想要访问数据库存储过程时使用。CallableStatement接口也可以接受运行时输入参数。
1. Statement