通过Driver获取数据库连接

时间:2022-06-19 11:51:18

通过Driver获取数据库连接

先看一下文件,在当前包下有一个properties配置文件,在根目录下有一个lib文件夹,里面放的是mySql的驱动jar包

Driver :是一个接口,数据库厂商必须提供实现的接口,能从其中获取数据库连接 可以通过Driver的实现类的对象获取数据库连接
* 1.加入mySql驱动
* 1.1 解压mysql-connector-java-5.1.39.zip 1.2 在当前项目下新建lib目录 1.3
* 把mysql-connector-java-5.1.39-bin.jar复制到lib目录下 1.4 右键,buildPath,add to
* buildPath加入到类路径下

第一种方法,不需要配置文件,直接获取数据库连接

 1 @Test
2 public void testDriver() throws Exception {
3 // 1.创建一个Driver 的实现类的对象
4 Driver driver = new com.mysql.jdbc.Driver();
5 // 2.准备连接数据库的基本信息,url,user,password
6 String url = "jdbc:mysql://localhost:3306/test";
7
8 Properties info = new Properties();
9 info.put("user", "root");
10 info.put("password", "123456");
11
12 // 3.调用Driver接口的connect(url,info)获取数据库连接
13 Connection connection = driver.connect(url, info);
14
15 System.out.println(connection);//com.mysql.jdbc.JDBC4Connection@73f712
16 }

 

 为了使得程序解耦,并且更加通用,使用如下方案

编写一个通用的方法,在不修改源程序的情况下,可以获取任何数据库的连接 解决方案:把数据库驱动Driver
实现类的全类名、url、user、password 放入到一个配置文件中, 通过修改配置文件的方式实现和具体的数据库解耦。

代码:

public Connection getConnection() throws Exception {

String driverClass
= null;
String jdbcUrl
= null;
String user
= null;
String password
= null;

// 读取类路径下的 jdbc.properties 文件
InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties
= new Properties();
properties.load(in);
driverClass
= properties.getProperty("driver");
jdbcUrl
= properties.getProperty("jdbcUrl");
user
= properties.getProperty("user");
password
= properties.getProperty("password");

// 通过反射创建 Driver 对象.
Driver driver = (Driver) Class.forName(driverClass).newInstance();
Properties info
= new Properties();
info.put(
"user", user);
info.put(
"password", password);

// 通过 Driver 的 connect 方法获取数据库连接.
Connection connection = driver.connect(jdbcUrl, info);
return connection;
}

@Test
public void testGetConnection() throws Exception{
System.out.println(getConnection());
//com.mysql.jdbc.JDBC4Connection@1556938
}

properties文件内容如下

#driver=oracle.jdbc.driver.OracleDriver
#jdbcUrl
=jdbc:oracle:thin:@localhost:1521:orcl
#user
=scott
#password
=java

driver
=com.mysql.jdbc.Driver
jdbcUrl
=jdbc:mysql://localhost:3306/test
user=root
password
=123456

这样如果想连接其他数据库时,只需修改此文件即可,无需修改代码