List<UserLoginDTO> userDTOList=new ArrayList<UserLoginDTO>();
UserLoginDTO user= null;
try {
pstmt = conn.prepareStatement(NHMQueryConstant.GET_SEARCH_USER_DETAIL.toString());
pstmt.setString(1,searchUser);
rs = pstmt.executeQuery();
while (rs.next()) {
user= new UserLoginDTO();
//user= new UserLoginDTO();
//String login= rs.getString("Login_ID");
user.setUserId(rs.getInt("M_USER_ID"));
user.setUserName(rs.getString("M_USER_NAME"));
user.setLoginID(rs.getString("Login_ID"));
user.setUserTypeID(rs.getInt("USER_TYPE_ID"));
user.setPassword(rs.getString("PASSWORD"));
user.setMobile(rs.getString("MOB_NO"));
user.setEmail(rs.getString("EMAIL"));
userDTOList.add(user);
}
} catch (Exception e) {
throw new NHMException(e.getMessage());
}
public static final StringBuilder GET_SEARCH_USER_DETAIL =
new StringBuilder().
append(" SELECT * FROM m_user_master").
append(" WHERE M_User_Name = IFNULL(NULL,M_User_Name)
AND Login_id = IFNULL('?',Login_id) limit 1 ");
我在这段代码中得到的参数索引超出了范围。 敬请指正
最佳答案
sql 查询中的占位符不应加引号。正确查询:
public static final StringBuilder GET_SEARCH_USER_DETAIL = new StringBuilder().append(" SELECT * FROM m_user_master").append(" WHERE M_User_Name = IFNULL(NULL,M_User_Name)AND Login_id = IFNULL(?,Login_id) limit 1 ");
关于java - mysql java 参数索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39072165/