1. 環境配置步驟(以 SQL Server 2005 為例)
- 關閉防火牆,避免阻擋本地連接。
- 啟用 TCP/IP 協議:
「配置工具」→「SQL Server 配置管理器」→「網絡配置」→「MSSQLSERVER 協議」→ 右鍵啟用「TCP/IP」 → 雙擊進入「IP 地址」→「IPAll」→ 設置「TCP 端口」為 1433。
- 外圍應用配置:
①「服務和連接」→ 選實例 →「Database Engine」→「遠程連接」→ 選「本地和遠程連接」→「同時使用 TCP/IP 和 Named Pipes」
②「SQL Server Browser」→ 服務啟動類型改「自動」→ 應用、啟動。
- 修改驗證模式並啟用 sa:
① SSMS →「安全性」→「登錄名」→ sa → 設置強密碼 →「狀態」→「登錄」→「啟用」
② SSMS → 右擊服務器 →「屬性」→「安全性」→ 選「SQL Server 和 Windows 身份驗證模式」。
- 創建數據庫並重啟服務。
- 安裝 JDBC 驅動:運行
sqljdbc_1.2.2828.100_chs.exe,將 sqljdbc.jar 加入 Classpath 或項目 Lib。
- Eclipse/MyEclipse 配置數據庫連接:Driver:
com.microsoft.sqlserver.jdbc.SQLServerDriver,URL: jdbc:sqlserver://localhost:1433;databaseName=mytest,用戶 sa,測試連接成功。
2. 核心代碼實戰(DAO 模式)
DBConnection.java - 連接管理
public class DBConnection {
String driveName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=cqTalk";
String userName = "sa"; String pwd = "xiaoyan710";
public DBConnection() { try { Class.forName(driveName); } catch (Exception e) { ... } }
public Connection getConnection() {
try { return DriverManager.getConnection(url, userName, pwd); }
catch (Exception e) { e.printStackTrace(); return null; }
}
}
UserDao.java - 增刪改查
public class UserDao {
private DBConnection dbCon = new DBConnection();
// 添加
public void add(User user) {
Connection con = dbCon.getConnection();
String sql = "insert into userData values(?,?,?,?,?)";
try (PreparedStatement ps = con.prepareStatement(sql)) {
ps.setString(1, user.getID()); ps.setString(2, user.getPwd());
ps.setString(3, user.getNickname()); ps.setInt(4, user.getChecking());
ps.setString(5, user.getAnswer());
ps.executeUpdate();
} catch (Exception e) { e.printStackTrace(); }
finally { closeQuietly(con); }
}
// 刪除、更新、查詢同理,均使用 PreparedStatement 防注入,finally 關閉連接。
}
User.java - 實體類
public class User {
private String ID, pwd, nickname, answer; private int checking;
// 完整 getter/setter
}
3. 關鍵注意事項
- finally 必須關閉連接,防止連接泄漏。
- 異常堆棧打印便於排查。
- 安全考慮:用完數據庫將
sa 密碼策略改為「強制過期」,下次使用前再取消並修改密碼。
- SQL Server 2000 vs 2005 驅動/URL 差異:
2000: com.microsoft.jdbc.sqlserver.SQLServerDriver / jdbc:microsoft:sqlserver://...
2005: com.microsoft.sqlserver.jdbc.SQLServerDriver / jdbc:sqlserver://...
- 常見異常
AuthenticationJNI: Failed to load sqljdbc_auth.dll → 將 sqljdbc_auth.dll 複製到 C:\WINDOWS\system32。