[JAVA] Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis

Lorsque j'ai essayé de définir l'ID (clé primaire) qui a été automatiquement essayé par AUTO_INCREMENT dans MySQL sur l'objet, 1 a été défini.

Classe de domaine

Hoge.java



@Data 
@NoArgsConstructor
public class Hoge{
    private Integer id;
    private String message;
}

Classe de service

HogeService.java


public class HogeService{

    @Autowired
    private HogeMapper hogeMapper;    

    public addHoge(){
        
        Hoge hoge = new Hoge();
        hoge.setMessage("Hello");

        hoge.setId(hogeMapper.insert());

        System.out.println(hoge.getId());//1
        //L'ID sera 1.
    }
} 

Cartographe

HogeMapper.java



@Mapper
public interface HogeMapper{
    Integer insert(Hoge hoge);
}

HogeMapper.xml


    <insert id="insert">
        INSERT INTO hoge(id, message)
        VALUES (#{id}, #{message})
        <selectKey resultType="Integer" keyProperty="id" order="AFTER">
            select @@IDENTITY
        </selectKey>
    </insert>

Avec la méthode ci-dessus, seul 1 est défini dans hoge.

La selectKey de MyBatis étant directement affectée à l'objet, l'ID peut être obtenu en utilisant le code ci-dessous.

HogeService.java


public class HogeService{

    @Autowired
    private HogeMapper hogeMapper;    

    public addHoge(){
        
        Hoge hoge = new Hoge();
        hoge.setMessage("Hello");

        hogeMapper.insert();

        System.out.println(hoge.getId());
        //L'ID numéroté automatiquement est émis! !!
    }
} 

Sommaire

La touche SELECT de Mybatis est affectée directement à l'objet.

Recommended Posts

Une histoire à laquelle j'étais accro lors de l'obtention d'une clé qui a été automatiquement essayée sur MyBatis
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
Une histoire à laquelle j'étais accro à deux reprises avec le paramètre de démarrage automatique de Tomcat 8 sur CentOS 8
Notez que j'étais accro au traitement par lots avec Spring Boot
J'étais accro à la mise à jour de la déclaration dans MyBatis
L'histoire à laquelle j'étais accro lors de la création de STS
[Circle CI] Une histoire à laquelle j'étais accro chez Start Building
J'étais accro à l'utilisation de RXTX avec Sierra
Une histoire où j'ai essayé de faire une vidéo en liant Traitement et Resolume
Ce à quoi j'étais accro lors du développement d'une application Spring Boot avec VS Code
Un site facile à comprendre lorsque j'ai commencé à apprendre Spring Boot
Une histoire sur le fait d'avoir du mal à construire PHP 7.4 sur CentOS 8 de GCE
J'ai essayé d'ajouter une ligne de séparation à TabLayout sur Android
Ce à quoi j'étais accro lors de l'introduction de la bibliothèque JNI
Ce que j'ai corrigé lors de la mise à jour vers Spring Boot 1.5.12 ・ Ce à quoi j'étais accro
Ce à quoi j'étais accro en utilisant rspec sur des rails
Lorsque j'ai essayé de faire défiler automatiquement avec JScrollBar, le gestionnaire d'événements n'a été dessiné qu'une seule fois.
Comment initialiser par lots des tableaux avec Java que je ne savais pas quand j'étais débutant
[Java] J'ai essayé de créer un jeu Janken que les débutants peuvent exécuter sur la console
Une histoire dans laquelle j'étais accro à la conversion de type implicite d'ActiveRecord lors du test unitaire
Java: Une histoire qui m'a mis mal à l'aise quand on m'a appris à comparer des chaînes avec des égaux sans raison.
J'étais accro au démarrage de sbt
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Je souhaite utiliser le balayage arrière sur un écran qui utilise XLPagerTabStrip
J'ai essayé de créer un environnement de développement Spring MVC sur Mac
Ce à quoi j'étais accro lors de la mise en œuvre de l'authentification Google avec des rails
À propos de la question pour laquelle j'étais accro à l'utilisation de hashmap
[Rails] Comment résoudre ActiveSupport :: MessageVerifier :: InvalidSignature auquel j'étais accro lors de l'introduction de la connexion Twitter [ActiveStorage]
Un mémo sobrement accro à la demande de multipart / form-data
Mémorandum: Ce à quoi j'étais accro quand j'ai frappé l'API de comptabilité freee
[Rails] J'étais accro aux paramètres nginx lors de l'utilisation d'Action Cable.
J'étais accro à un simple test de Jedis (bibliothèque Java-> Redis)
Problèmes auxquels j'étais accro lors de la création de l'environnement digdag avec docker
J'étais un peu accro à la connexion ssh de mac à linux (ubuntu)
Une histoire accro aux espaces réservés des modèles JDBC
J'étais accro à la réécriture sur @ SpringApplicationConfiguration-> @SpringBootTest
J'étais accro à la méthode du rouleau
J'étais accro au test Spring-Batch
J'ai essayé de construire AdoptOpenjdk 11 sur CentOS 7
Lors de l'introduction de JOOQ dans Spring Boot, une histoire qui a été traitée parce qu'une erreur s'est produite autour de Liquidbase
4 livres techniques que je regrette d'avoir dû lire quand j'étais un nouveau venu
J'ai essayé de mettre facilement CentOS-7 dans un PC dont je n'ai plus besoin
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'étais un peu accro à la comparaison S3 Checksum, alors prenez note.
J'ai essayé de résumer à nouveau le projet qui était difficile à première vue
J'ai essayé de générer automatiquement une classe à convertir d'une classe de données en un bundle avec APT
SpringSecurity J'étais accro à essayer de me connecter avec un mot de passe haché (résolu)
[Petite histoire] J'ai essayé de rendre java ArrayList un peu plus pratique
Une histoire accro à EntityNotFoundException de getOne de JpaRepository
Une histoire qui a mis du temps à établir une connexion
java j'ai essayé de casser un simple bloc
J'ai essayé de développer un outil de gestion des effectifs
J'ai essayé de développer un site Web pour étudier DUO3.0.