Lorsque le nom de colonne du résultat de la requête ne correspond pas au nom d'attribut de l'objet Java, les méthodes suivantes doivent être utilisées pour le traitement :
La première façon : utilisez le mot-clé "as" dans la requête pour alias la colonne
La deuxième façon : utiliser le mappage des résultats resultMap
La troisième méthode : activer le mappage automatique de la dénomination des bosses (paramètres de configuration)
Classe d'entité Voiture :
paquet com.bjpowernode.domain;
Voiture de classe publique {
Identifiant entier privé ;
chaîne privée carNum ;
marque privée String;
privé Double guidePrix;
chaîne privée ProduceTime ;
chaîne privée carType ;
//La méthode de construction est abrégée
//setter et getter 略
//toString légèrement
La table t_car dans la base de données :
Nous pouvons voir que les noms d'attributs dans la classe d'entité ne sont pas exactement les mêmes que les noms de champs dans la table de base de données et doivent être traités. Les trois méthodes de traitement sont les suivantes :
La première méthode : utilisez le mot-clé "as" pour alias la colonne dans l'instruction de requête , et l'alias doit être le nom d'attribut de la classe d'entité
<select id="selectById" resultType="com.powernode.mybatis.pojo.Car">
sélectionner
identifiant,
car_num comme carNum,
marque,
guide_price comme guidePrice,
Produce_time comme ProduceTime,
car_type comme carType
depuis
t_car
où
identifiant = #{identifiant}
</sélectionner>
La deuxième méthode : utilisez le mappage des résultats resultMap, comme suit :
<!--
carte de résultats :
id : est l'identifiant unique de ce mapping résultat,
type : classe à laquelle le jeu de résultats est mappé (c'est-à-dire la classe d'entité correspondante). Des alias peuvent être utilisés.
-->
<resultMap id="carResultMap" type="voiture">
<!-- id est l'identifiant unique de l'objet, afin d' améliorer les performances de mybatis. Il est recommandé d'écrire dessus. -->
<id property="id" column="id"/>
<result property="carNum" column="car_num"/>
<!--Lorsque le nom de l'attribut est cohérent avec le nom de la colonne de la base de données, il peut être omis. Mais écrivez-le. -->
<!--javaType est utilisé pour spécifier le type d'attribut. jdbcType est utilisé pour spécifier le type de colonne. Généralement, peut être omis. -->
<result property="marque" column="marque" javaType="string" jdbcType="VARCHAR"/>
<result property="guidePrice" column="guide_price"/>
<result property="produceTime" column="produce_time"/>
<result property="carType" column="car_type"/>
</resultMap>
<!--La valeur de l'attribut resultMap doit être cohérente avec la valeur de l'attribut id dans la balise resultMap. -->
<select id="selectAllByResultMap" resultMap="carResultMap">
sélectionnez * dans t_car
</sélectionner>
La troisième méthode : activer le mappage automatique de la dénomination des bosses (paramètres de configuration)
Les prérequis pour utiliser cette méthode sont :
Les noms d'attribut suivent les conventions de dénomination Java et les noms de colonnes des tables de base de données suivent les conventions de dénomination SQL.
Convention de dénomination Java :
La première lettre est en majuscule et la première lettre de chaque mot suivant est en majuscule, conformément à la convention de dénomination des bosses.
Convention de dénomination SQL :
Tous en minuscules, les mots sont séparés par des traits de soulignement.
Par exemple, les correspondances suivantes :
Noms d'attribut dans les classes d'entités Noms de colonnes dans les tables de base de données
numéro_car numéro_car
Type de voiture type_voiture
ProduceTime Produce_time
Pour activer cette fonction, vous devez configurer les éléments suivants dans le fichier mybatis-config.xml :
<!--Après la balise propriétés -->
<paramètres>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</paramètres>