2021-03-25

获取数据库连接的五种方式,推荐使用方式五

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import org.junit.Test;

public class ConnectionTest {
	//方式一
	@Test  //单元测试
	public void testConnection1() throws SQLException {
		//获取driver实现类对象
		Driver driver = new com.mysql.jdbc.Driver();
		
	String url = "jdbc:mysql://localhost:3306/test";
	//将用户名和密码封装到properties
	Properties info = new Properties();
	info.setProperty("user", "root");
	info.setProperty("password", "0301");
	Connection conn = driver.connect(url, info);
	
	System.out.println(conn);
	
}

//对方式一的迭代:使用反射
@Test
public void testConnection2() throws Exception {
	//1获取driver实现类对象
	Class clazz = Class.forName("com.mysql.jdbc.Driver"); //反射的源头 括号里为路劲
	Driver driver = (Driver) clazz.newInstance();
	
	//2 提供要连接的数据库
	String url = "jdbc:mysql://localhost:3306/test";
	
	//3 提供连接需要的用户和密码
	Properties info = new Properties();
	info.setProperty("user", "root");
	info.setProperty("password", "0301");
	
	//4 获取连接
	Connection conn = driver.connect(url, info);
	
	System.out.println(conn);
}

//方式三:使用DriverManger替换Driver
@Test
public void testConnection3() throws Exception {
	//1.获取Driver实现类对象
	Class clazz = Class.forName("com.mysql.jdbc.Driver");
	Driver driver = (Driver) clazz.newInstance();
	
	//2. 提供另外三个连接的基本信息
	String url = "jdbc:mysql://localhost:3306/test";
	String user = "root";
	String password = "0301";
	//注册驱动
	DriverManager.deregisterDriver(driver);
	//获取连接
	Connection conn = DriverManager.getConnection(url, user, password);
	System.out.println(conn);
}

//方式四:对方式三的优化 可以四加载驱动,不用在显示注册驱动
	@Test
	public void testConnection4() throws Exception {

		//1. 提供另外三个连接的基本信息
		String url = "jdbc:mysql://localhost:3306/test";
		String user = "root";
		String password = "0301";
		
		//2.获取Driver实现类对象
		Class.forName("com.mysql.jdbc.Driver");
		//			Driver driver = (Driver) clazz.newInstance();	
		//			//注册驱动
		//			DriverManager.deregisterDriver(driver);
			/*
		 * 在MySQL的Driver实现类中,有声明的操作
		 * */
		
		//3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		System.out.println(conn);
	}


		

	
	
	//方式五:将数据库连接需要的4个基本信息声明在配置信息中,通过读取配置文件的方式,获取连接
	/*
	 * 好处:实现了数据与代码的分离,实现了解耦;
	 * 	   如果需要修改配置文件信息,可以避免程序重新打包
	 * */
	@Test
	public void getConnection5() throws Exception {
		//1.读取配置文件中的4个基本信息
		InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
		
		Properties pros = new Properties();
		pros.load(is);
		
		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");
		
		//2.加载驱动
		Class.forName(driverClass);
			//3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		System.out.println(conn);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值