您的位置:首页 > 编程语言 > Java开发

JavaEE JDBC 怎么加载驱动

2017-01-17 10:20 471 查看

JDBC怎么加载驱动

@author ixenos

分析

1.JDBC是一套连接数据库的接口(放在java.util.sql.Driver类中),不同的数据库依此接口各自实现Java连接到数据库的操作,这些具体的实现就叫做驱动



2.当只连接一个数据库时,我们可以new 驱动对象来使用,但是当多数据库连接时,要多次创建Driver示例,多次创连接Connection,有些繁琐,这时,sun提供了一个驱动的管理器DriverManager,注册驱动就可以调用;

3.但是每次还是要创Driver实例,然后都进行注册,而且可能重复注册,怎么办?jdbc驱动的实现者就把新建实例驱动注册的操作包裹为一个static块(在类加载连接初始化时运行,且只运行一次),这样加载驱动时就执行这些操作了,这也就是为什么只用Class.forName的由来。

com.mysql.jdbc.Driver对加载驱动的实现

  com.mysql.jdbc.Driver把DriverManager的注册放在了静态块中





代码

import java.sql.Connection;

import java.sql.Driver;

import java.sql.DriverManager;

import java.util.Properties;

import org.junit.Test;

/**

* jdbc连接数据库

* @author ixenos

*

*/

public class Demo1 {

//连接数据库的URL

private String url = "jdbc:mysql://localhost:3306/day17";

// jdbc协议:数据库子协议:主机:端口/连接的数据库   //

private String user = "root";//用户名

private String password = "root";//密码

/**

* 第一种方法

* @throws Exception

*/

@Test

public void test1() throws Exception{

//1.创建驱动程序类对象

Driver driver = new com.mysql.jdbc.Driver(); //新版本

//Driver driver = new org.gjt.mm.mysql.Driver(); //旧版本

//设置用户名和密码

Properties props = new Properties();

props.setProperty("user", user);

props.setProperty("password", password);

//2.连接数据库,返回连接对象

Connection conn = driver.connect(url, props);

System.out.println(conn);

}

/**

* 使用驱动管理器类连接数据库(注册了两次,没必要)

* @throws Exception

*/

@Test

public void test2() throws Exception{

Driver driver = new com.mysql.jdbc.Driver();

//Driver driver2 = new com.oracle.jdbc.Driver();

//1.注册驱动程序(可以注册多个驱动程序)

DriverManager.registerDriver(driver);

//DriverManager.registerDriver(driver2);

//2.连接到具体的数据库

Connection conn = DriverManager.getConnection(url, user, password);

System.out.println(conn);

}

/**

* (推荐使用这种方式连接数据库)

* 推荐使用加载驱动程序类  来 注册驱动程序

* @throws Exception

*/

@Test

public void test3() throws Exception{

//Driver driver = new com.mysql.jdbc.Driver();

//通过得到字节码对象的方式加载静态代码块,从而注册驱动程序

Class.forName("com.mysql.jdbc.Driver");

//Driver driver2 = new com.oracle.jdbc.Driver();

//1.注册驱动程序(可以注册多个驱动程序)

//DriverManager.registerDriver(driver);

//DriverManager.registerDriver(driver2);

//2.连接到具体的数据库

Connection conn = DriverManager.getConnection(url, user, password);

System.out.println(conn);

}

}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: