原因:缺少 SP3 補丁,或驅動 jar 包版本不匹配。
解決:
setup.exe 只會解壓,必須進入解壓目錄執行 setup.bat 完成真正安裝lib 下替換為 SP3 版的三個 jar:msbase.jar、mssqlserver.jar、msutil.jar原因:SQL Server 未啟用混合認證(SQL Server + Windows)。
解決:
原因:連接用戶權限不足(如用 sa 連但對象屬於其他用戶)。
解決:改用專門創建的應用用戶,並授予該用戶對應數據庫的 db_owner 或至少 SELECT/INSERT/UPDATE/DELETE 權限。
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*,java.io.*" %>
<html><body>
data from SQL Server DB: <hr><table>
<%!
String trans(String chi) {
String result = null;
try { byte[] temp = chi.getBytes("iso-8859-1"); result = new String(temp); }
catch (Exception e) { System.out.println(e); }
return result;
}
%>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=ch12", "sx", "sx");
Statement stmt = con.createStatement();
ResultSet rst = stmt.executeQuery("select * from contact");
while (rst.next()) {
out.println("<tr><td>" + trans(rst.getString("userName")) + "</td>"
+ "<td>" + trans(rst.getString("phone")) + "</td>"
+ "<td>" + trans(rst.getString("mail")) + "</td></tr>");
}
rst.close(); stmt.close(); con.close();
%>
</table></body></html>
setup.bat)netstat -an | find "1433")