[JAVA] Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde

Als ich versuchte, die ID (Primärschlüssel), die von AUTO_INCREMENT in MySQL automatisch versucht wurde, auf das Objekt festzulegen, wurde 1 festgelegt.

Domänenklasse

Hoge.java



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

Serviceklasse

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
        //Die ID wird 1 sein.
    }
} 

Mapper

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>

Bei der obigen Methode wird nur 1 in hoge gesetzt.

Da der selectKey von MyBatis direkt dem Objekt zugewiesen ist, kann die ID mithilfe des folgenden Codes abgerufen werden.

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());
        //Die automatisch nummerierte ID wird ausgegeben! !!
    }
} 

Zusammenfassung

Der SELECT KEY von Mybatis wird direkt dem Objekt zugewiesen.

Recommended Posts

Eine Geschichte, nach der ich süchtig war, als ich einen Schlüssel bekam, der automatisch auf MyBatis ausprobiert wurde
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
Eine Geschichte, der ich mit der automatischen Starteinstellung von Tomcat 8 unter CentOS 8 zweimal verfallen war
Beachten Sie, dass ich süchtig nach Stapelverarbeitung mit Spring Boot war
Ich war süchtig danach, die Update-Anweisung in MyBatis zu wiederholen
Die Geschichte, nach der ich beim Einrichten von STS süchtig war
[Circle CI] Eine Geschichte, der ich bei Start Building verfallen war
Ich war süchtig nach RXTX mit Sierra
Eine Geschichte, als ich versuchte, ein Video zu erstellen, indem ich Processing und Resolume verknüpfte
Wovon ich süchtig war, als ich eine Spring Boot-Anwendung mit VS Code entwickelte
Eine Seite, die leicht zu verstehen war, als ich anfing, Spring Boot zu lernen
Eine Geschichte über die Schwierigkeiten beim Versuch, PHP 7.4 auf CentOS 8 von GCE zu erstellen
Ich habe versucht, TabLayout unter Android eine Trennlinie hinzuzufügen
Wovon ich bei der Einführung der JNI-Bibliothek süchtig war
Was ich beim Update auf Spring Boot 1.5.12 behoben habe ・ Wovon ich süchtig war
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
Als ich versuchte, mit JScrollBar automatisch zu scrollen, wurde der Ereignishandler nur einmal gezeichnet.
Wie man Arrays mit Java stapelweise initialisiert, wusste ich als Anfänger nicht
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
Eine Geschichte, die mich während des Komponententests von der impliziten Typkonvertierung von ActiveRecord abhängig machte
Java: Eine Geschichte, in der ich mich unwohl fühlte, als mir beigebracht wurde, Strings ohne Grund mit Gleichen zu vergleichen.
Ich war süchtig danach, sbt zu starten
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Ich möchte Swipeback auf einem Bildschirm verwenden, der XLPagerTabStrip verwendet
Ich habe versucht, eine Spring MVC-Entwicklungsumgebung auf einem Mac zu erstellen
Wovon ich süchtig war, als ich die Google-Authentifizierung mit Rails implementierte
Über die Sache, dass ich süchtig danach war, wie man Hashmap benutzt
[Rails] So lösen Sie ActiveSupport :: MessageVerifier :: InvalidSignature, von dem ich bei der Einführung des Twitter-Logins abhängig war [ActiveStorage]
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Memorandum: Wovon ich süchtig war, als ich auf die Accounting Freee API traf
[Rails] Ich war süchtig nach den Nginx-Einstellungen, als ich Action Cable verwendete.
Ich war süchtig nach einem einfachen Test von Jedis (Java-> Redis-Bibliothek)
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Ich war ein wenig süchtig nach SSH-Verbindung von Mac zu Linux (Ubuntu)
Eine Geschichte, die süchtig nach Platzhaltern für JDBC-Vorlagen ist
Ich war süchtig danach, in @ SpringApplicationConfiguration-> @SpringBootTest umzuschreiben
Ich war süchtig nach der Rollmethode
Ich war süchtig nach dem Spring-Batch-Test
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Bei der Einführung von JOOQ in Spring Boot wurde eine Geschichte behandelt, die behandelt wurde, weil bei Liquidbase ein Fehler aufgetreten ist
4 technische Bücher, die ich leider als Neuling hätte lesen müssen
Ich habe versucht, CentOS-7 einfach in einen PC zu integrieren, den ich nicht mehr benötige
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
Ich war ein wenig süchtig nach dem S3-Prüfsummenvergleich, machen Sie sich also eine Notiz.
Ich versuchte noch einmal zusammenzufassen, was auf den ersten Blick schwierig war
Ich habe versucht, automatisch eine Klasse zu generieren, um sie mit APT von einer Datenklasse in ein Bundle zu konvertieren
SpringSecurity Ich war süchtig danach, mich mit einem Hash-Passwort anzumelden (gelöst)
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Eine Geschichte, die süchtig nach EntityNotFoundException von getOne of JpaRepository ist
Eine Geschichte, die Zeit brauchte, um eine Verbindung herzustellen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.