Я разрабатываю приложение, в котором я хочу сравнить список телефонных номеров с мобильного устройства с базой данных (MYSQL). Я передаю номера телефонов в виде списка массивов.Передача объекта массива в запрос jdbc
вот мой код:
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("1212121212");
arrayList.add("1234567890");
arrayList.add("1515151515");
arrayList.add("1111111111");
arrayList.add("2222222222");
arrayList.add("3333333333");
List<UserDO> userDOs = userDAOImpl.getExistingMobileNumber(arrayList);
Приведенный выше код мой тестовый случай и следующий код мой запрос к базе данных для выбора мобильного телефона
private static final String SELECT_MOBILE_NUMBER = "SELECT USER_ID, USER_NAME, REGISTRATION_ID, MOBILE_NUMBER FROM USER WHERE MOBILE_NUMBER IN (?)";
Вот мой DAOImpl код:
public List<UserDO> getExistingMobileNumber(ArrayList<String> mobileNumbers) throws UserDataException {
JdbcTemplate jd = this.getJdbctemplate();
List<UserDO> userDOs = jd.query(SELECT_MOBILE_NUMBER, new Object[] { mobileNumbers }, new RowMapper<UserDO>(){
@Override
public UserDO mapRow(ResultSet rs, int rowNum) throws SQLException {
UserDO userDO = new UserDO();
userDO.setMobileNumber(rs.getString(4));
return userDO;
}
});
return userDOs;
}
На самом деле моя проблема в том, что я передаю мобильный как строку, как в следующем коде
List<UserDO> userDOs = jd.query(SELECT_MOBILE_NUMBER, new Object[] { "2222222222" }, new RowMapper<UserDO>(){
......
......
}
}
это работает прекрасно, его отдача ожидается output.But, когда я прохожу как «mobileNumbers» вместо «2222222222» его не давая ожидается output.Any один объяснить мне, мы можем передать массив список объект в JDBC Шаблон запроса(). Если так, как мы можем пройти?
Заранее спасибо
Проверить эту ссылку StackOverflow: http://stackoverflow.com/questions/4504592/how-to-use-select-in-clause -in-jdbctemplates –