Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment insérer un objet (plus de 10 propriétés) dans mysql via mybatis basé sur une annotation sans lister toutes les propriétés

Ce n'est pas possible dans MyBatis (au moins version 3) out of the box.

MyBatis a un mappage automatique lors de la lecture des données de la base de données mais n'a pas l'option de mapper automatiquement les champs lors de l'insertion.

La raison en est que MyBatis est très centré sur SQL, c'est-à-dire que vous devez écrire du SQL manuellement. Il est possible d'avoir des champs implicites dans l'instruction SQL select (select * from table ) il y a donc un mappage automatique vers POJO dans ce cas, mais il n'est pas possible d'avoir des champs implicites dans la mise à jour ou l'insertion, donc pas de mappage automatique.

MyBatis peut être prolongé de cause. Par exemple, vous pouvez utiliser @InsertProvider /@UpdateProvider avec le générateur sql qui génère sql en utilisant la réflexion pour obtenir des champs d'objet.