通过Driver与DriverManager连接数据库

时间:2022-03-10 03:21:16
一、通过Driver接口连接数据库   
     Driver是JAVA中的一个接口,它的实现是由数据库厂商去实现的,能够通过它去获取数据库的连接,想要使用Driver,需要通过如下步骤:
     ①从Mysql官网下载到驱动后解压
     ②在当前项目中新建一个文件夹
     ③将解压后的驱动文件夹中的jar结尾的文件添加到步骤②中新建的文件夹的目录下
     ④右键单击jar文件,选择bulid  path,然后add to bulidpath
导入了之后我们就可以根据Driver的实体对象去获取数据库的连接,实现方法如下:
     ①创建一个Driver实现类的对象
    Driver driver = new com.mysql.jdbc.Driver();
     ②创建连接数据库的基本信息String类型的name,Properties类型的info
    String url = "jdbc:mysql://localhost:3306/sid" ;
Properties info = new Properties();
url的书写方式如上面所示,上面是连接本地Mysql的方式,链接最后的sid为要连接的数据库名
     ③调用Driver接口的connect(url,info)方法获取数据库连接
    Connection connection = driver .connect(url, info);
System. out.println(connection );
但是这个方法有个弊端,就是不能解耦,当在连接其他数据库的时候就要重写这个方法,所以我们采用将连接数据库所需的信息存放在文件中,当需要连接不同的数据库厂商时可以修改配置文件从而达到解耦,具体操作如下:
     1、在当前项目中创建一个文件名为"jdbc.properties",并写入如下内容并保存
                     driver=com.mysql.jdbc.Driver
jdbcurl=jdbc:mysql://localhost:3306/test
user=root
password=090936//这里的密码是安装mysql等数据库时所设置的密码
     2、然后在相应的方法中读取该文件,按照以下方式执行
               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) Class.forName(driverClass).newInstance(); //反射创建Driver对象

Properties info = new Properties();
info.put( "user", user );
info.put( "password", password );
Connection connection = driver .connect(jdbcurl, info);
return connection ;
}
像上面这样,就可以做到对任意数据库厂商的连接了,而我们只需要更改配置文件的信息即可
二、通过DriverManager获取数据库连接
     DriverManager是驱动的管理类,用它来连接数据库比Driver更为方便,只需要利用反射加载好数据库的驱动程序然后再调用其中的getConnection()方法即可完成数据库的连接,因为可以通过改变传入getConnection()方法的参数来返回不同的数据库连接,所以它可以管理不同的驱动程序,下面就是通过DriverManager来获取数据库连接的步骤:
     1、在当前项目中创建一个文件名为"jdbc.properties",并写入如下内容并保存
                     driver=com.mysql.jdbc.Driver
jdbcurl=jdbc:mysql://localhost:3306/test //注意这里连接的是mysql数据库
user=root
password=090936//这里的密码是安装mysql等数据库时所设置的密码
     2、进行连接数据库的一系列操作,具体过程如下
       public Connection getConnection1() throws Exception{
// 1、创建连接数据库的基本信息
String driverClass = null;
String url = null;
String user = null;
String password = null;
// 2、创建Properties对象并获取jdbc.Properties对应的输入流
Properties properties = new Properties();
InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
// 3、加载对应的输入流
properties.load(in);
// 获取输入流中的信息从而决定连接数据库的基本信息的内容
driverClass = properties.getProperty("driver");
url = properties.getProperty("jdbcurl");
user = properties.getProperty("user");
password = properties.getProperty("password");
// 5、利用反射加载数据库驱动程序
Class.forName(driverClass);
// 6、通过DriverManager中的getConnection()方法获取数据库连接
return DriverManager.getConnection(url, user, password);
}
     3、进行连接的测试
在完成了前两个步骤之后,在主函数中进行测试,测试内容如下
       public static void main(String[] args) throws Exception {
TestDriverManager e = new TestDriverManager();
System.out.println(e.getConnection1());
}
若输出语句为    com.mysql.jdbc.JDBC4Connection@xxxxxx 则数据库的连接完成了