Afin de passer dynamiquement la valeur de la condition de la clause where dans MyBatis, je pense qu'il est courant de la traiter comme une instruction préparée en utilisant "#" comme indiqué ci-dessous.
Fichier de définition SQL.xml
<select id="getHogeValue" resultType="java.util.Map">
select * 
form hoge_table
where foo_1 = #{foovalue}
</select>
Cette section décrit comment modifier dynamiquement les colonnes à acquérir. En d'autres termes, il est utile lorsque la colonne spécifiée dans la clause select est indéfinie.
Java:JDK1.7 MyBatis:mybatis-3.2.5.jar
Au lieu de le passer comme valeur d'une instruction préparée Utilisez "$" pour passer sous forme de chaîne.
Voici un exemple.
Classe d'accès aux données.java
    //Définir la partie dynamique du nom de la colonne dans List
    List<Integer> columnIdList = Arrays.asList(1,2,3,4);
    
    //Définir la liste de pièces dynamiques de nom de colonne comme Map
    Map params = new HashMap();
    params.put("column_id_list", columnIdList);
    
    //FOO de la table Hoge_1, FOO_2, FOO_3, FOO_4, BAR_1, BAR_2, BAR_3, BAR_Obtenez 4
    List<Map> hogeValueLsit = hogeTableMapper.getHogeValue(params);
    
    //Vérifiez le contenu acquis
    for (Map elm : hogeValueLsit) {
      int idx = 0;
      for (Integer columnId : columnIdList) {
        
        String foo = (String)elm.get("FOO_"+columnId);
        System.out.println("FOO_" + idx + "Le second est" + foo + "est.");
        
        String bar = (String)elm.get("BAR_"+columnId);
        System.out.println("BAR_" + idx + "Le second est" + bar + "est.");
        
      }
    }
Fichier de définition SQL.xml
    <select id="getHogeValue" resultType="java.util.Map">
    select 
      <foreach item="column_id" collection="column_id_list">
         foo_${column_id}
        ,bar_${column_id}
      </foreach>
    from hoge_table 
    </select>
Notez que le nom de la colonne est "lettre supérieure" lors de la récupération côté Java Même s'il est rendu plus bas que «foo_» du côté du fichier de définition SQL La clé Map côté Java ne peut être obtenue qu'avec "FOO_" en majuscule.
c'est tout.