//体会:面向接口编程的思想
//方式一:
@Test
public void test1() throws Exception {
//1. 获取连接的4个必备要素:
//① 提供Driver接口的实现类:
String driverName = "com.mysql.jdbc.Driver";
//② 提供url,告知操作的是哪个数据库
String url = "jdbc:mysql://localhost:3306/test";
//③ 提供用户名
String name = "root";
//④ 提供密码
String password = "abc123";
//2.注册驱动
//创建了Driver接口在mysql中具体实现类的对象
Class clazz = Class.forName(driverName);
Driver driver = (Driver) clazz.newInstance();
DriverManager.registerDriver(driver);
//3.获取连接
Connection connection = DriverManager.getConnection(url, name, password);
System.out.println(connection);
}
//方式二:对方式一进行优化
@Test
public void test2() throws Exception {
//1. 获取连接的4个必备要素:
//① 提供Driver接口的实现类:
String driverName = "com.mysql.jdbc.Driver";
//② 提供url,告知操作的是哪个数据库
String url = "jdbc:mysql://localhost:3306/test";
//③ 提供用户名
String name = "root";
//④ 提供密码
String password = "abc123";
//2.加载驱动类
Class.forName(driverName);
// Driver driver = (Driver) clazz.newInstance();
// DriverManager.registerDriver(driver);
/*
mysql底层的Driver类中声明有:底层已经实现了Driver的注册
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
}
*/
//3.获取连接
Connection connection = DriverManager.getConnection(url, name, password);
System.out.println(connection);
}
//方式三:对方式二进行优化
public class ConnectTest { @Test public void test() throws IOException, ClassNotFoundException, SQLException { //配置文件加载 Properties pro=new Properties(); //类的加载器 InputStream resourceAsStream = ConnectTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); pro.load(resourceAsStream); //获取配置文件的四个基本信息 String driverClassName = pro.getProperty("driverClassName"); String url = pro.getProperty("url"); String user = pro.getProperty("user"); String password = pro.getProperty("password"); //加载驱动类 Class.forName(driverClassName); //获取连接 Connection connection = DriverManager.getConnection(url, user, password); System.out.println(connection); } }
注意点:对应的配置文件:声明在src下
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
user=root
password=abc123