要手动下载驱动jar包,第五种是层层净化的最终版
import org.junit.Test;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class connectiontest {
//方式一
@Test
public void testconnection1() throws SQLException {
//要下载添加mysql驱动的jar包
Driver driver=new com.mysql.cj.jdbc.Driver();
String url ="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
Properties info = new Properties();
info.setProperty("user","root");
info.setProperty("password","root");
//通过驱动获取连接
Connection conn=driver.connect(url,info);
System.out.println(conn);
}
//方式二,不出现第三方api,使程序具有更好的可移植性
@Test
public void testconnection2() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
//获取driver实现类对象使用反射
Class clazz=Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver=(Driver) clazz.newInstance();
String url ="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
Properties info = new Properties();
info.setProperty("user","root");
info.setProperty("password","root");
Connection conn=driver.connect(url,info);
System.out.println(conn);
}
//方法三,使用drivermanager替换driver
@Test
public void testconnection3() throws Exception{
//获取driver实现类对象使用反射
Class clazz=Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver=(Driver) clazz.newInstance();
//驱动管理器注册驱动
DriverManager.registerDriver(driver);
String user="root";
String password="root";
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
Connection conn=DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
//方法四,省略注册等操作
@Test
public void testconnection3() throws Exception{
//获取driver实现类对象使用反射
Class.forName("com.mysql.cj.jdbc.Driver");
//Driver driver=(Driver) clazz.newInstance();
//驱动管理器注册驱动
//DriverManager.registerDriver(driver);
String user="root";
String password="root";
String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
Connection conn=DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
//方式五(final版):将数据库连接需要的4个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接
/*
* 此种方式的好处?
* 1.实现了数据与代码的分离。实现了解耦
* 2.如果需要修改配置文件信息,可以避免程序重新打包。
*/
@Test
public void getConnection5() throws Exception{
//1.读取配置文件中的4个基本信息
InputStream is = ClassLoader.getSystemClassLoader().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);
}
}
配置文件jdbc.properties(一定要放在src下)
user=root
password=root
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driverClass=com.mysql.cj.jdbc.Driver