package club.zhuoL.testconnection;
import com.mysql.cj.jdbc.Driver;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class TestConn {
//方法一:缺点 第三方api太多
@Test
public void testConn1() throws SQLException {
Driver driver = new Driver();
/**
* jdbc:mysql:协议
* localhost:ip地址
* 3306:默认的MySQL端口
* runoob:数据库
*/
String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false&serverTimezone=UTC";
//将用户名和密码封装在Properties中
Properties info = new Properties();
info.setProperty("user", "zhuoL");
info.setProperty("password", "11111109");
Connection connection = driver.connect(url, info);
System.out.println(connection);
}
//方式二:对方式一的迭代 在以下程序中不出现第三方的api 使得程序有更好的移植性
@Test
public void testConn2() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
//1.获取一个Driver类的对象使用反射
Class clazz = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//2.提供要连接的数据库
String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false&serverTimezone=UTC";
//3.提供连接需要的用户名和密码
//将用户名和密码封装在Properties中
Properties info = new Properties();
info.setProperty("user", "zhuoL");
info.setProperty("password", "11111109");
//4.获取连接
Connection connection = driver.connect(url, info);
System.out.println(connection);
}
//方式三:使用DriverManager代替Driver
@Test
public void testConn3() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException {
//1.获取Driver类的实现类的对象
Class clazz = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
//2.提供需要信息
String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false&serverTimezone=UTC";
String user = "zhuoL";
String password = "11111109";
//注册驱动
DriverManager.registerDriver(driver);
//获取连接
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
}
//方式4:加载驱动 不需要注册
@Test
public void testConn4() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException {
//1.加载driver 可以省略
//mysql-connector-java-8.0.16.jar\META-INF\services\java.sql.Driver中已经加载过
//Class.forName("com.mysql.cj.jdbc.Driver");
//Driver driver = (Driver) clazz.newInstance();
//2.提供需要信息
String url = "jdbc:mysql://localhost:3306/runoob?useSSL=false&serverTimezone=UTC";
String user = "zhuoL";
String password = "11111109";
//注册驱动
//DriverManager.registerDriver(driver);
//获取连接
/**
* 在Driver类中有如下操作 所以可以省略注册操作
* static {
* try {
* DriverManager.registerDriver(new Driver());
* } catch (SQLException var1) {
* throw new RuntimeException("Can't register driver!");
* }
* }
*/
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
}
//方式5:将数据需要的基本信息写入到配置文件当中 使得程序代码更加简洁易读
@Test
public void testConn5() throws IOException, ClassNotFoundException, SQLException {
//1.读取配置中的信息
InputStream inputStream = TestConn.class.getClassLoader().
getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(inputStream);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driverClass = properties.getProperty("driverClass");
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
Connection connection = DriverManager.getConnection(url,user,password);
System.out.println(connection);
}
}
Java连接数据库的五种方式(递进关系)
最新推荐文章于 2022-11-18 21:54:21 发布