七、實現步驟
(四)創建數據庫連接管理類
在程序裏定義數據庫連接屬性常量,也可以將數據庫連接屬性值寫入數據庫配置文件,並且保存在項目內,在程序中讀取文件中的信息,拿到數據庫連接屬性值,從而進行數據庫連接。
方法1、在程序裏定義數據庫連接屬性常量
- 在src裏創建net.hw.student.dbutil包
- 在包裏創建數據庫連接管理類ConnectionManager
package net.hw.student.dbutil;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 功能:數據庫連接管理類
* 作者:華衛
* 日期:2020年06月05日
*/
public class ConnectionManager {
private static final String DRIVER = "com.mysql.jdbc.Driver"; // 數據庫驅動程序
private static final String URL = "jdbc:mysql://localhost:3306/student"; // 數據庫統一資源標識符
private static final String USER = "root"; // 數據庫用戶
private static final String PASSWORD = "root"; // 數據庫密碼
/**
* 私有化構造方法,拒絕實例化
*/
private ConnectionManager() {
}
/**
* 獲取數據庫連接靜態方法
*
* @return 數據庫連接對象
*/
public static Connection getConnection() {
// 定義數據庫連接
Connection conn = null;
try {
// 安裝數據庫驅動程序
Class.forName(DRIVER);
// 獲取數據庫連接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 返回數據庫連接
return conn;
}
/**
* 關閉數據連接靜態方法
*
* @param conn
*/
public static void closeConnection(Connection conn) {
// 判斷數據庫連接是否非空
if (conn != null) {
try {
// 判斷連接是否未關閉
if (!conn.isClosed()) {
// 關閉數據庫連接
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 主方法:測試兩個靜態方法
*
* @param args
*/
public static void main(String[] args) {
// 獲取數據庫連接
Connection conn = getConnection();
// 判斷數據庫連接是否成功
if (conn != null) {
JOptionPane.showMessageDialog(null, "恭喜,數據庫連接成功!");
} else {
JOptionPane.showMessageDialog(null, "遺憾,數據庫連接失敗!");
}
// 關閉數據庫連接
closeConnection(conn);
}
}
-
說明:
private static final String PASSWORD = "root";
密碼值改成你電腦上MySQL的密碼。 -
運行程序,測試數據庫連接是否成功
-
單擊【確定】按鈕,應用程序正常結束
方法2、從數據庫配置文件裏讀取屬性值
- 在項目根目錄裏創建數據庫配置文件jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student
user=root
password=root
- 修改ConnectionManager代碼
package net.hw.student.dbutil;
import javax.swing.*;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* 功能:數據庫連接管理類
* 作者:華衛
* 日期:2020年06月05日
*/
public class ConnectionManager {
// 聲明數據庫連接屬性變量
private static String driver;
private static String url;
private static String user;
private static String password;
/**
* 私有化構造方法,拒絕實例化
*/
private ConnectionManager() {
}
/**
* 獲取數據庫連接靜態方法
*
* @return 數據庫連接對象
*/
public static Connection getConnection() {
// 定義數據庫連接
Connection conn = null;
// 創建Properties對象
Properties pps = new Properties();
try {
// 加載屬性配置文件test.properties
pps.load(new FileReader("jdbc.properties"));
// 獲取數據庫連接屬性
driver = pps.getProperty("driver");
url = pps.getProperty("url");
user = pps.getProperty("user");
password = pps.getProperty("password");
// 安裝數據庫驅動程序
Class.forName(driver);
// 獲取數據庫連接
conn = DriverManager.getConnection(url, user, password);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
}
// 返回數據庫連接
return conn;
}
/**
* 關閉數據連接靜態方法
*
* @param conn
*/
public static void closeConnection(Connection conn) {
// 判斷數據庫連接是否非空
if (conn != null) {
try {
// 判斷連接是否未關閉
if (!conn.isClosed()) {
// 關閉數據庫連接
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 主方法:測試兩個靜態方法
*
* @param args
*/
public static void main(String[] args) {
// 獲取數據庫連接
Connection conn = getConnection();
// 判斷數據庫連接是否成功
if (conn != null) {
JOptionPane.showMessageDialog(null, "恭喜,數據庫連接成功!");
} else {
JOptionPane.showMessageDialog(null, "遺憾,數據庫連接失敗!");
}
// 關閉數據庫連接
closeConnection(conn);
}
}
- 運行程序,查看結果