Die übergabe von array-Objekts in jdbc Abfrage
Bin ich eine Anwendung entwickeln, in die ich vergleichen möchten, in der Liste von Telefonnummern aus dem mobilen Gerät mit Datenbank(MYSQL). Ich bin vorbei an Handy-Nummern als array-Liste.
hier ist mein code:
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);
Der obige code ist in meinem test-Fall und der folgende code ist meine Datenbank-Abfrage für die Auswahl Handy-Nummer
private static final String SELECT_MOBILE_NUMBER = "SELECT USER_ID, USER_NAME, REGISTRATION_ID, MOBILE_NUMBER FROM USER WHERE MOBILE_NUMBER IN (?)";
Hier ist mein DAOImpl code:
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;
}
Eigentlich mein problem ist wenn ich den pass mobile als string wie folgender code
List<UserDO> userDOs = jd.query(SELECT_MOBILE_NUMBER, new Object[] { "2222222222" }, new RowMapper<UserDO>(){
......
......
}
}
es ist in Ordnung arbeiten,seine Angabe der erwarteten Ausgang.Aber wenn ich den pass als "mobileNumbers" statt "2222222222" seine geben nicht erwarteten Ausgang.Alle erklären mir,können wir pass-array-list-Objekts in jdbc-Template Query().Wenn ja, wie können wir Sie bestehen?
Vielen Dank im Voraus
- Überprüfen Sie in diesem StackOverflow-link: stackoverflow.com/questions/4504592/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie mehrere
?
in der SQL-Abfrage abhängig von der Anzahl der Artikel in IhremArrayList
. Daher verwendenStringBuilder
zu erstellen Sie Ihre SQL-Abfrage:Hoffe, das hilft.
BEARBEITEN
Lesen Sie hier mehr
http://www.mkyong.com/spring/spring-jdbctemplate-querying-examples/
In Ihrer Lösung, die Sie verwenden
Methode der JdbcTemplate
können Sie
und erstellen prepareStatement Ihre Anfrage und arrayList selbst.