JDBC鏈接數據庫有五種方式,在這里推薦第五種
方式一:
public class ConnectionTest {
//方式1:
@Test
public void testConnection1() throws SQLException {
//獲取Driver的實現類對象
Driver driver=new com.mysql.jdbc.Driver();
//jdbc:mysql:協議
//localhost:ip地址
//3306:默認mysql端口號
//test:test數據庫
String url ="jdbc:mysql://localhost:3306/test";
//Properties 將用戶名和密碼封裝在Properties里
Properties info=new Properties();
info.setProperty("user","root");
info.setProperty("password", "123456");
Connection conn=driver.connect(url, info);
System.out.println(conn);
}
方式二:
對方式一的迭代:在如下的程序中不會出現第三方的api,使得程序具有更好的移植性
@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", "123456");
//4 獲取鏈接
Connection conn=driver.connect(url, info);
System.out.println(conn);
}
方式三:
使用DriverManager替換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="123456";
//注冊驅動
DriverManager.registerDriver(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="123456";
//2 加載Driver
Class.forName("com.mysql.jdbc.Driver");
// Driver driver=(Driver) clazz.newInstance();
// //注冊驅動
// DriverManager.registerDriver(driver);
/*為什么可以省略上述操作呢? * 在mysql的Driver實現類中,聲明了如下的操作 * statac{ * try{ * java.sql.DriverManager.registerDriver(new Driver()); * }catch(SQLException E){ * throw new RuntimeException("Can't register driver!"); * } * } * */
//3 獲取鏈接
Connection conn=DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
方式五(推薦):
將數據庫鏈接需要的4個基本信息聲明在配置文件中,通過讀取配置文件的方式:獲取鏈接
優點:
1、實現數據與代碼的分離 ,實現了解耦
2、如果要修改配置文件信息,可以避免程序重打包
第一步:在項目src下創建配置文件
第二步:內容如圖所示
@Test
public void testConnection5() 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);
}