JDBC(1)——获取数据库连接

主要讲通过 DriverManager 连接

DriverManager 是驱动的管理类.
 1). 可以通过重载的 getConnection() 方法获取数据库连接. 较为方便
 2). 可以同时管理多个驱动程序: 若注册了多个数据库连接, 则调用 getConnection()
     方法时传入的参数不同, 即返回不同的数据库连接。

//1. 准备连接数据库的 4 个字符串. 
        //驱动的全类名.
        String driverClass = "com.mysql.jdbc.Driver";
        //JDBC URL
        String jdbcUrl = "jdbc:mysql:///test";
        //user
        String user = "root";
        //password
        String password = "1230";
        
        //2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
        Class.forName(driverClass);
        
        //3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. 
        Connection connection = 
                DriverManager.getConnection(jdbcUrl, user, password);
        System.out.println(connection); 

进一步进行封装 1)参数提取到文件中

        2)封装到方法里

注意:
    1).  属性文件对应 Java 中的 Properties 类
    2).  可以使用类加载器加载 bin 目录(类路径下)的文件

public Connection getConnection() throws Exception{
        //1. 准备连接数据库的 4 个字符串. 
        //1). 创建 Properties 对象
        Properties properties = new Properties();
        
        //2). 获取 jdbc.properties 对应的输入流, src / jdbc.properties
        InputStream in = 
                this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
        
        //3). 加载 2) 对应的输入流
        properties.load(in);
        
        //4). 具体决定 user, password 等4 个字符串. 
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String jdbcUrl = properties.getProperty("jdbcUrl");
        String driver = properties.getProperty("driver");
        
        //2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
        Class.forName(driver);
        
        //3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. 
        return DriverManager.getConnection(jdbcUrl, user, password);
    }

 src / jdbc.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/atguigu
user=root
password=1230