premier pas:
Ajoutez des propriétés " useGeneratedKeys " et " keyProperty " dans le fichier Mypper MyBatis, où keyProperty est le nom de propriété de l'objet Java!
<insert id = "insert" ParameterType = "Spares" useGeneratedKeys = "true" keyproperty = "id"> insérer dans Spares (spares_id) Valeurs (# {id}, #}, # {typeid}, # # {spec}Étape 2:
Après que MyBatis ait exécuté l'instruction INSERT, il affectera automatiquement la valeur auto-croissante à l'ID de propriété des pièces de rechange d'objet. Par conséquent, il peut être obtenu via la méthode Getter correspondant aux pièces de rechange!
/ ** * Ajout de pièces de rechange * @Author Hellostory * @param Spares * @return * / @RequestMapping (Value = "/ insert") @ResponseBody public JSONResponse insert (Spares Spares) {INT COUNDE = SPARESSERVICE.Insert (Spares); System.out.println ("INSERT EN TOTAL" + Count + "Record!" + "/ N La valeur d'auto-croissance de la clé principale de l'enregistrement juste inséré est:" + spares.getID ());PS: Mybatis renvoie l'ID de croissance de l'auto-croissance des données insérées
Aujourd'hui, le test a signalé un bogue. Le phénomène est que les utilisateurs nouvellement enregistrés peuvent voir le rapport de chacun. Il n'y a aucun problème avec les anciens utilisateurs. Lors de la vérification du journal, il a été constaté que l'ID de l'utilisateur nouvellement enregistré était nul, de sorte qu'une requête de données valide à table complète a été réalisée. Cependant, la clé principale du tableau n'est pas autorisée à être vide, alors comment un nouvel ID utilisateur enregistré peut-il être nul? La raison en est que le code de la couche de service renvoie directement l'objet Paramètre et que le XML ne fait aucune configuration.
La solution spécifique consiste à configurer la méthode d'insertion dans XML
useGeneratedKeys = ”true” keyproperty = ”registerId”
La valeur KeyProperty correspond à l'attribut de clé primaire dans l'objet VO entité
Les détails sont les suivants:
<code> @Override public Registres Create (registres r) {registrersmapper.insert (r); retour R; } </code>La méthode d'insertion de registremapper.xml est la suivante:
<code> <insert id = "insert" keyproperty = "registerId" ParameterType = "com.ciji.zzaservice.pojo.base.registers" useneneratedKeys = "true">
Exécuter une instruction d'insertion normale
</ingser> </code>
De cette façon, vous pouvez obtenir la clé primaire d'auto-croissance des données nouvellement insérées dans la couche de contrôleur.
En ce qui concerne la signification de l'ajout de deux attributs au XML, l'explication en ligne est la suivante:
useGeneratedKeys
(Utilisé uniquement pour l'insert) Cela indique à MyBatis d'utiliser la méthode GetGeneratedKeys de JDBC pour récupérer les clés principales générées en interne par des données (telles que le champ automatique des systèmes de gestion de base de données comme MySQL et SQL Server). Valeur par défaut: false.
député
(Utilisé uniquement pour l'insert) Marquez une propriété, MyBatis définira sa valeur via GetGeneratedKeys ou via l'élément enfant SelectKey de l'instruction INSERT. Par défaut: pas défini.
Résumer
Ce qui précède est la valeur de champ d'auto-croissance (ID) de l'enregistrement d'insert introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!