作者資訊:曾青松 zengqingsong@sohu.com 中山大學數學與計算科學學院 資訊系統與計算機網路方向碩士研究生
public Connection getConnection(String userName, String passWord) throws SQLException {
this.setUserName(userName);
this.setPassword(password);
return getConnection();
}
public PrintWriter getLogWriter() {
return null;
}
public void setLogWriter(PrintWriter printWriter) {
}
public void setLoginTimeout(int seconds) {
}
public int getLoginTimeout() {
return 0;
}
實現連接 SQL Server 的連線工廠,這裡因為我們的專案使用 SQL Server 2000 所以只實現了 SqlServerConnectionFactory。
package skydev.modules.data;
public final class SqlServerConnectionFactory extends ConnectionFactory {
private final String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String host; // 主機
private int port; // 埠號
private String databaseName; // SQL 資料庫名稱
public SqlServerConnectionFactory() {
super.setDriverName(dbDriver);
}
/**
* @param host 資料庫所在的主機名:如 "localhost"
* @param port SQL 伺服器運行的埠號,如果使用預設值 1433,傳入一個負數即可
* @param databaseName 資料庫名稱
* @param userName 使用者名稱
* @param password 密碼
*/
public SqlServerConnectionFactory(String host, int port, String databaseName,
String userName, String password) {
this.setHost(host);
this.setPort(port);
this.setDatabaseName(databaseName);
this.setUserName(userName);
this.setPassword(password);
}
// ... 其他 getter/setter 方法
}
這個範例展示了如何使用工廠模式封裝資料庫連線邏輯,支援可配置的主機、埠號、資料庫名稱與認證資訊,為資訊系統提供靈活的資料庫存取基礎設施。