執行登錄查詢拋出 `com.microsoft.sqlserver.jdbc.SQLServerException: “null”附近有語法錯誤。`
String sql = "select * from hello where IDNum'" + s
+ "' and UserPassword='" + UserPassword
+ "'and UserName='" + a + "'";
關鍵問題:where IDNum' 缺少 比較運算符(`=` 或 `LIKE`),導致 SQL 解析器在單引號後遇到 `null`(參數 `s` 可能為空)時報錯。
String sql = "SELECT * FROM hello WHERE IDNum = ? AND UserPassword = ? AND UserName = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, s);
ps.setString(2, UserPassword);
ps.setString(3, a);
ResultSet rs = ps.executeQuery();
直接 `System.out.println(sql)` 打印最終 SQL,複製到 SSMS 執行即可快速定位語法錯誤。
JSP SQL Server 登錄驗證,SQL 語法錯誤缺少運算符,參數化查詢防注入,PreparedStatement 正確用法。