以下示範如何使用 JDBC 連接 Microsoft SQL Server,包含驅動載入、連線取得、查詢執行與資源釋放的完整封裝類。程式碼採用 Microsoft 官方 JDBC 驅動(com.microsoft.jdbc.sqlserver.SQLServerDriver),適用於 SQL Server 2000/2005 環境。
package jxjpd;
import java.io.*;
import java.sql.*;
import com.microsoft.jdbc.sqlserver.*;
public class DBconn {
private static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pd";
private static final String USER = "sa";
private static final String PASS = "";
private Connection conn;
private Statement stmt;
private ResultSet rs;
public DBconn() {
try {
Class.forName(DRIVER);
} catch (Exception e) {
System.err.println("驅動載入失敗: " + e.getMessage());
}
}
public Connection getConn() {
try {
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection(URL, USER, PASS);
}
} catch (Exception e) {
System.err.println("取得連線失敗: " + e.getMessage());
}
return conn;
}
public ResultSet executeQuery(String sql) {
try {
getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (Exception e) {
System.err.println("查詢執行失敗: " + e.getMessage());
}
return rs;
}
public int executeUpdate(String sql) {
int rows = 0;
try {
getConn();
stmt = conn.createStatement();
rows = stmt.executeUpdate(sql);
} catch (Exception e) {
System.err.println("更新執行失敗: " + e.getMessage());
}
return rows;
}
public void close() {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
System.err.println("資源釋放失敗: " + e.getMessage());
}
}
}
關鍵點提醒:
finally 區塊或 try-with-resources 中關閉資源,避免洩漏。