comment interroger une liste & lt; String & gt; dans jdbctemplate
Je suis à l'aide de ressorts jdbctemplate et l'exécution d'une requête comme ci-dessous:
SELECT COLNAME FROM TABLEA GROUP BY COLNAME
Il n'y a pas nommé de paramètres passés, toutefois, le nom de colonne, COLNAME
sera passé par l'utilisateur.
Questions
- Est-il un moyen d'avoir des espaces réservés, comme
?
pour les noms de colonne? Par exempleSELECT ? FROM TABLEA GROUP BY ?
- Si je veux simplement exécuter la requête ci-dessus et obtenir un
List<String>
quelle est la meilleure façon de faire?
Actuellement, je suis en train de faire:
List <Map<String, Object>> data = getJdbcTemplate().queryForList(query);
for (Map m : data)
System.out.println(m.get("COLNAME"));
source d'informationauteur birdy
Vous devez vous connecter pour publier un commentaire.
Utilisation dynamique de la requête ci-dessous:
EDIT: Pour Arrêter l'Injection SQL, vérifier la non caractères de mot dans le colName :
Pour remplir une Liste de Chaîne de caractères, vous ne devez pas utiliser de ligne personnalisée mappeur. Mettre en œuvre à l'aide de
queryForList
.Utilisez le code suivant
List data = getJdbcTemplate().queryForList(query,String.class)
Vous ne pouvez pas utiliser des espaces réservés pour les noms de colonne, table des noms, des noms de type de données, ou de manière générale tout ce qui n'est pas données.