JDBC 通过DriverManager 获取数据库连接

	@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);
		
		
	}
	
posted @ 2019-07-05 22:43  烂科人  阅读(738)  评论(0)    收藏  举报