我無法理解它有什麼問題,我花了很多時間試圖從方法queryForList(..)中獲取我的String對象,並且都是不需要的。所以這裏這個愚蠢的SQL查詢:帶參數的彈簧JdbcTemplate返回空列表
String GET_EMAIL_BY_LDAP = "select ld.LDAP_EMAIL1 from IPS.ldap ld where ld.ldap_login = ?"
我試過這也沒有'?'參數,它是完美的作品。
這裏是這樣的,我如何使用方法:
List<String> email = jdbcTemplate.queryForList(GET_EMAIL_BY_LDAP, String.class, userId.toUpperCase());
這個版本的方法也返回空列表:
List<String> email = jdbcTemplate.queryForList(GET_EMAIL_BY_LDAP, new Object[]{userId.toUpperCase()}, String.class);
附: getEmailById(「DN270391RKA」) - 這是我傳遞的用戶ID參數。它沒有空格。在表ld.LDAP_EMAIL1領域
類型是:NVARCHAR2(381 CHAR)
DB中是否有'ldap_login'和'ldap_email1'字符串?如果您將用戶標識「硬編碼」到SQL查詢中,您會得到結果嗎? – icza 2014-08-29 11:17:34
「我也試過這個也沒有'?'參數,它是完美的。「通過這個句子我的意思是我已經嘗試了硬編碼參數,它的工作原理。 – 2014-08-29 11:19:30
我的意思是「硬編碼」一個用戶ID,例如:''select ... FROM ... WHERE ld.ldap_login ='exampleUserId'「' – icza 2014-08-29 11:20:30