使用 PreparedStatement.setString(1, bookName) 查詢 nvarchar(20) 字段 bookName,數據庫中有數據但 ResultSet 為空。
? 位置與 setString(1, ...) 一致。sendStringParametersAsUnicode=true(默認 true),確保 Unicode 傳輸。mssql-jdbc 至最新版。WHERE bookName = CAST(? AS NVARCHAR(20))。// 打印生成的 SQL(需用 P6Spy 或 log4jdbc)
// 或手動拼裝測試
String testSql = "SELECT * FROM bookInList WHERE bookName = N'C++'";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(testSql); // 若此查有結果,說明參數綁定有問題