@Test
public void testGetConnection2() throws Exception {
System.out.println(getConnection2());
}
public Connection getConnection2() throws Exception {
// 1. 准备连接数据库的 4 个字符串
// 1) 创建 Properties 对象
Properties properties = new Properties();
// 2) 获取 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);
}
/*
* DriverManager 是驱动的管理类。
* 1) 可以通过重载的 getConnection() 方法获取数据库连接,较为方便
* 2)可以同时管理多个驱动程序: 若注册了多个数据库连接,则调用getConnetcion()
* 方法时传入的参数不同,即返回不同的数据库连接
*
*
*/
@Test
public void testDriverManager() throws Exception {
//1. 准备连接数据库的 4 个字符串。
// 驱动的全类名。
String driverClass = "com.mysql.cj.jdbc.Driver";
// JDBC URL
String jdbcUrl = "jdbc:mysql:///myemployees?serverTimezone=UTC";
// jdbc:mysql://localhost:3306/myemployees
// 如果是 localhost 的时候,可以省略掉
// user
String user = "root";
//password
String password = "0212";
// 加载数据库驱动程序(对应的 Driver 实现类中有 注册驱动 的静态代码块 )
// DriverManager.registerDriver(Class.forName(driverClass).newInstance());
// DriverManager好处: 可以来注册多个驱动程序
Class.forName(driverClass);
// 反射
// 3. 通过DriverManager 的getConnection() 方法获取数据库连接。
Connection connection =
DriverManager.getConnection(jdbcUrl, user, password);
// 比 Driver 更方便
System.out.println(connection);
}