首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 連接 SQL Server 2005 完整指南:JDBC 驅動安裝與實戰代碼

     編輯:關於JSP

前置準備

1. SQL Server 2005 Express Edition

  • 下載:MSDN 下載頁
  • 安裝後**必須啟用 TCP/IP 協議**:
    SQL Server Configuration Manager → SQL Server 2005 Network Configuration → Protocols for SQLEXPRESS → TCP/IP → Enabled → IP Addresses 頁 → IP All → TCP Port = 1433 → 重啟服務。

2. JDBC 驅動

  • 下載:sqljdbc_1.0.809.102_chs.exe(Microsoft 官方)
  • 解壓取得 sqljdbc.jar,放入 Web 應用 WEB-INF/lib/ 目錄(或容器共享類路徑)。

Java 連接代碼範例

import java.sql.*;

public class SqlServerDemo {
    public static void main(String[] args) throws Exception {
        // 1. 載入驅動
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        // 2. 建立連接 (SQL Server 2005 預設實例名 SQLEXPRESS)
        String url = "jdbc:sqlserver://localhost:1433;databaseName=tempdb;instanceName=SQLEXPRESS";
        Connection conn = DriverManager.getConnection(url, "sa", "your_password");

        // 3. 建立測試表
        try (Statement stmt = conn.createStatement()) {
            stmt.executeUpdate("CREATE TABLE dbo.Table_1 (ID BIGINT NOT NULL, NAME VARCHAR(20) NOT NULL, EMAIL VARCHAR(50) NULL)");
        }

        // 4. 插入資料
        String sql = "INSERT INTO dbo.Table_1 (ID, NAME, EMAIL) VALUES (?, ?, ?)";
        try (PreparedStatement ps = conn.prepareStatement(sql)) {
            ps.setLong(1, 1);
            ps.setString(2, "張三");
            ps.setString(3, "zhangsan@example.com");
            ps.executeUpdate();
        }

        // 5. 查詢驗證
        try (Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM dbo.Table_1")) {
            while (rs.next()) {
                System.out.printf("ID: %d, Name: %s, Email: %s%n", rs.getLong("ID"), rs.getString("NAME"), rs.getString("EMAIL"));
            }
        }
        conn.close();
    }
}

JSP 頁面中使用(簡化版)

<%@ page import="java.sql.*" %>
<%
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection conn = DriverManager.getConnection(
        "jdbc:sqlserver://localhost:1433;databaseName=tempdb;instanceName=SQLEXPRESS", "sa", "pwd");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM dbo.Table_1");
    while (rs.next()) {
        out.println("ID: " + rs.getLong("ID") + ", Name: " + rs.getString("NAME") + "
"); } rs.close(); stmt.close(); conn.close(); %>

連接池化生產配置

JSP 實務請**務必使用連接池**,否則頻繁建立連接會拖垮資料庫:

  • Tomcat + DBCP:context.xml 定義 <Resource name="jdbc/sqlserver" type="javax.sql.DataSource" .../>
  • JNDI 查找:DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/sqlserver");
  • 參數調優:maxTotal=20、maxIdle=10、validationQuery=SELECT 1、testOnBorrow=true。

現代化遷移提醒

  • SQL Server 2005 **2016 年已終止支援**,存在未修補安全漏洞。**請升級至 SQL Server 2019/2022**。
  • JDBC 驅動請用 **Microsoft JDBC Driver 12.x for SQL Server** (GitHub: microsoft/mssql-jdbc),支援 JDBC 4.3、Always Encrypted、Azure AD 認證。
  • 新專案建議採用 **Spring Boot + HikariCP + JPA/Hibernate** 或 **MyBatis**,避免在 JSP 混寫 JDBC 代碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved