sqljdbc_1.0.809.102_chs.exe(Microsoft 官方)sqljdbc.jar,放入 Web 應用 WEB-INF/lib/ 目錄(或容器共享類路徑)。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();
}
}
<%@ 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 實務請**務必使用連接池**,否則頻繁建立連接會拖垮資料庫:
context.xml 定義 <Resource name="jdbc/sqlserver" type="javax.sql.DataSource" .../>DataSource ds = (DataSource) new InitialContext().lookup("java:comp/env/jdbc/sqlserver");maxTotal=20、maxIdle=10、validationQuery=SELECT 1、testOnBorrow=true。microsoft/mssql-jdbc),支援 JDBC 4.3、Always Encrypted、Azure AD 認證。