JDBC(一) 简介与获取数据连接

1. JDBC 简介:

JDBC(Java Data Base Connectivity : java数据库连接)是一种用于执行SQL语句的Java API,就是一组接 口(基本上在 java.sql 包中)

用途:与数据库建立连接、发送 操作数据库的语句并处理结果。


2. JDBC 驱动程序:数据库厂商提供的实现 JDBC 接口的实现类

所以想访问数据库只需实现这组接口就行,当然不同的数据库就有不同的实现。(多态)

数据库厂商为了生意更好,为客户服务,他们就提供对 JDBC 的实现,即JDBC驱动程序。


3. JDBC API

JDBC(一) 简介与获取数据连接_第1张图片

4. 测试获取数据库连接

    Driver 是一个接口:数据库厂商必须提供实现的接口, 从其中获取数据库连接
     准备工作
  JDBC(一) 简介与获取数据连接_第2张图片
   实现代码如下
	@Test
	public void testDriver() throws Exception { 
		// 1. mysql厂商提供Driver 接口的实现类
		Driver driver = new com.mysql.jdbc.Driver();
		
		// 2. 准备连接数据库的基本信息
		//url 写法:jdbc:mysql://localhost:3306/dason
		//	   协议:子协议://子名称/数据库名
		String url ="jdbc:mysql://localhost:3306/dason";
		Properties info = new Properties();
		// 数据库的登录名和密码
		info.put("user","root");
		info.put("password","root");
		
		// 3. 调用driver 的coonnect(url,info) 方法获取数据库连接 
		Connection conn = driver.connect(url, info);
		System.out.println(conn);
	}

    输出结果为:com.mysql.jdbc.JDBC4Connection@c666ef0


5. 但是不同的数据的 Driver 实现类的全类名、数据库信息是不同的,我们需要写一个适合各个数据库的获取连接的方法:

    如图所示编写文件名为jdbc.properties 的配置文件
JDBC(一) 简介与获取数据连接_第3张图片

代码如下:
/**
 * 通用的方法:可以获取任何数据库的连接
 * 改进:将Driver 实现类的全类名、数据库信息放入配置文件中
 * 配置文件在src下,文件名为jdbc.properties
 * @throws Exception 
 */
public Connection getConnection() throws Exception {
	/**
	* //读取配置文件中的信息
	* getClass():取得当前对象所属的Class对象  
	* getClassLoader():取得该Class对象的类装载器
	*/
	InputStream in = 
		getClass().getClassLoader().getResourceAsStream("jdbc.properties");
	Properties properties = new Properties();
	properties.load(in);
		
	String drviverClass = properties.getProperty("driverClass");
	String jdbcUrl = properties.getProperty("jdbcUrl");
	String user = properties.getProperty("user");
	String password = properties.getProperty("password");
		
	Properties info = new Properties();
	info.put("user", user);
	info.put("password", password);
		
	// 利用反射创建对象
	Driver driver = (Driver) Class.forName(drviverClass).newInstance();
	Connection conn = driver.connect(jdbcUrl, info);
		
	return conn;	 
}


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

	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");
		
		//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
		Class.forName(driverClass);
		//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. 
		Connection connection = 
				DriverManager.getConnection(jdbcUrl, user, password);
		return connection;
	}






你可能感兴趣的:(JDBC)