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.
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`
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;
}
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`
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>
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