JDBC_通过DriverManager获得数据库连接

时间:2022-06-19 11:51:24
package day_18;

import org.junit.Test;

import java.io.InputStream;
import java.sql.*;
import java.sql.DriverManager;
import java.util.Properties;
/*
    CTRL+右击 在某个类名或者方法上即可打开其对应的API文档!
 */
/**  DriverManager 是驱动的管理类,比直接使用driver更加方便
 *      my.sql.Driver 应用程序不再需要使用Class.forName()显式加载JDBC驱动程序。
 *      目前使用加载JDBC驱动程序的现有程序Class.forName(driverClass)将不执行任何工作。
 * 当调用方法getConnection时,
 *      DriverManager将尝试从初始化中加载的驱动程序中找到合适的驱动程序,
 *      并使用与当前小程序或应用程序相同的类加载器显式加载驱动程序。
 *  代码,一步到位:
 *      Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
 *
 */
public class testDriverManager {
    @Test
    public void test1() throws Exception{
        //1.准备数据库的连接的4个字符串
        String driverClass=null,jdbcUrl=null,user=null,password=null;
                //jdbc:mysql:///books   ;也可以将localhost省略掉!
        //2.读取类路径下的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");
        //3.加载数据库驱动程序(注册驱动),driver对应的实现类中有注册驱动的静态代码块
       // Class.forName(driverClass);  //
                    //或这么手动加载,也可以注册多个数据库连接的代码块
            //DriverManager.registerDriver( Class.forName(driverClass).newInstance());

        //4.通过DriverManager 的getConnection()方法获取数据库连接。
        Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
        System.out.print(connection);   //com.mysql.jdbc.JDBC4Connection@19e1023e

    }
}