什么是JDBC?
- JDBC(Java DataBase Connection)为java开发者使用数据库提供了同一的编程接口,它由一组java类和接口组成.是java程序与数据库系统通信的标准API.JDBC API使得开发人员可以使用纯java的方式来连接数据库,并执行操作.
-
sun公司由于不知道各个主流商用数据库的程序代码,因此无法自己写代码连接各个数据库,因此,sun公司决定,自己提供一套api,凡是数据库相与java连接的,数据库厂商自己必须实现JDBC这套接口.而数据库厂商的JDBC实现,我们就叫它此数据库的数据库驱动
JDBC访问数据库流程
加载JDBC驱动程序->建立与数据库的连接->发送SQL查询->得到结果集
Driver接口
- Driver接口由数据库厂家提供,由于java开发者而言,只需要使用Driver接口就可以了
-
在编程中要连接数据库,必须先按照特定厂商的数据库驱动程序.不同的数据库有不同的装载方法
-
驱动:就是各个数据库厂商实现Sun公司提出的JDBC接口.即对Connection等接口的实现类的jar文件
-
装载MySQL驱动
- Class.forName(“com.mysql.jdbc.Drier”);
- 装载Oracle驱动
- Class.forName(“oracle.jdbc.drier.OracleDriver”);
DriverManager接口
- DriverManager是JDBC的管理层,作用于用户和驱动程序之间
-
DriverManager跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接
Connection接口
-
Connection与特定数据库的连接(会话),在连接上下文中执行SQL语句并返回结果
-
DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上
-
连接MySQL数据库:
Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");
- 连接Oracle数据库
Connection conn = DriverManager.getConnection("jdbc:oracle:thin@host:port:database","user","password");
Code
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 测试与数据库建立连接
* @author Matrix42
*
*/
public class Demo01 {
public static void main(String[] args) {
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
long start = System.currentTimeMillis();
//建立连接 耗时 耗资源
//连接对象内部包含了Socket对象,是一个远程的连接,比较耗时,这是Connection对象管理的一个要点!
//真正开发中,为了提高效率,都会使用连接池来管理连接对象!
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");
long end = System.currentTimeMillis();
System.out.println("建立连接耗时"+(end-start)+"ms");
System.out.println(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}