[JAVA] correspondance entre le nom de la colonne de la table mybatis et le nom du champ

supposition

J'expliquerai le mécanisme (mapping) qui associe le nom de la colonne de la table au nom du champ utilisé dans le code dans MyBatis.

Il existe quatre types de méthodes de cartographie. Sur le terrain, vous en choisirez un.

  1. Utilisez la fonction de mappage automatique standard
  2. Correspondent à chacun dans la clause AS
  3. Activez la fonction de cartographie automatique de l'étui de chameau
  4. Gérer avec la balise resultMap

1. Utilisez la fonction de mappage automatique standard

Le paramètre standard de MyBatis est "Ignorer la différence entre les minuscules et les majuscules et associer".

Les exemples suivants sont automatiquement associés et fonctionnent.

ʻExemple: (nom de la colonne de la table) A_COLUMN → (nom du champ) a_column ou a_Column`

2. Correspondre un à un avec la clause as

Lors de l'écriture d'une instruction SQL, décrivez la correspondance dans la clause AS.

Instruction SQL


SELECT
    A_COLUMN AS "aColumn",
    B_COLUMN AS "bColumn",
FROM
    MY_TABLE
WHERE
    A_COLUMN = "test"

Nom de domaine


Public Class myTableDto {
    String aColumn;
    String bColumn;
}

3. Activez la fonction de cartographie automatique de l'étui chameau

Dans le fichier de configuration (par exemple mybatis-config.xml)

mybatis-config.xml


<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

Si vous spécifiez, le nom de la colonne avec trait de soulignement correspondra automatiquement à la casse du chameau (le premier du deuxième mot est en majuscule).

ʻExemple: (nom de la colonne de la table) ADD_COLUMN → (nom du champ) @ Colonne`

4. Gérer avec la balise resultMap

Dans le fichier Mapper appelé à partir du fichier de configuration, utilisez la balise resultMap pour décrire la correspondance.

testMapper.xml


<mapper namespace="org.apache.ibatis.example.Mapper">
    <resultMap type="org.apache.ibatis.example.dto.myTableDto" id="testmap">
        <result column="A_COLUMN" property="aColumn"/>
        <result column="B_COLUMN" property="bColumn"/>
    </resultMap>
    
    <select id="getAll" resultMap="testmap">
        SELECT * FROM MY_TABLE
    </select>
</mapper>

Sentiments divers

Personnellement, je pourrais aimer écrire dans la clause AS, ce qui permet de voir facilement s'il y a des omissions lors de la lecture de l'instruction SQL.

Recommended Posts

correspondance entre le nom de la colonne de la table mybatis et le nom du champ
Comparaison CRUD de base entre Mybatis et Hibernate
Divers tableau de correspondance de Spring Framework et Spring Boot
[Rails] Comment changer le nom de colonne de la table
Lorsque Activator accueille EOL, créez une table de correspondance entre les commandes Activator et SBT.