Beim Einfügen von Java in MySQL erhalten Sie Auto_Increment_ID (automatischer Nummerierungswert) als Rückgabewert

Einführung

Zeigt, wie der Auto_Increment-Wert beim Einfügen eines Datensatzes in eine Datenbank aus Java-Code mit JDBC abgerufen wird.

Sie können den zuletzt nummerierten Wert mit SELECT LAST_INSERT_ID () abrufen, aber Sie können ihn verwenden, wenn Sie ihn als Rückgabewert erhalten möchten.

Nutzungsumgebung

Voraussetzungen

Erstellen Sie zunächst die folgende Datenbank / Tabelle.

Bereiten Sie hier die ID-Spalte und die Char-Typ-Namensspalte vor, die die Primärschlüssel mit dem festgelegten Auto_Increment in der Testtabelle sind.

Die SQL zum Erstellen der Tabelle lautet wie folgt.

CREATE TABLE test(
  id INT NOT NULL AUTO_INCREMENT,
  name CHAR(30) NOT NULL,
  PRIMARY KEY (id)
);

Wenn Sie die Spalteninformationen der Tabelle überprüfen (SHOW COLUMNS FROM Tabellenname), können Sie sehen, dass "Auto_Increment" in der ID-Spalte des Primärschlüssels festgelegt ist.

Field Type Null Key Default Extra
id int NO PRI NULL auto_increment
name char NO NULL

So erhalten Sie Auto_Increment_ID

Zunächst wird die Java-Quelle angezeigt.

Test.java


public class Test {

	public static void main(String[] args) {
		 int autoIncrementKey = 0;

	     try {
	     //Treiberlast
	     Class.forName("com.mysql.jdbc.Driver");

	     //Stellen Sie eine Verbindung zu MySQL her
	     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/testdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "user", "password");
         
	     String sql = "insert into test(name) values (?)";
	     
         //Anweisungserstellung
         //Kehre hier zurück_GENERATED_Stellen Sie die Tasten ein
	     PreparedStatement stmt = con.prepareStatement(sql, java.sql.Statement.RETURN_GENERATED_KEYS);

	     stmt.setString(1, "XXX");
	     stmt.executeUpdate();

         // getGeneratedKeys()Mit Auto_Holen Sie sich die inkrementierte ID
	     ResultSet res = stmt.getGeneratedKeys();

	     if(res.next()){
	    	 autoIncrementKey = res.getInt(1);
	     }

	     System.out.println(autoIncrementKey);

	     res.close();
	     stmt.close();
	     con.close();

		} catch (Exception e){
			System.out.println(e);
		}
	}

}

Setzen Sie beim Generieren eines PreparedStatement das zweite Argument auf java.sql.Statement.RETURN_GENERATED_KEYS.

Nach dem Ausführen der Insert-Anweisung mit stmt.exceuteUpdate () kann durch Ausführen von "stmt.getGeneratedKeys ()" die automatisch nummerierte ID abgerufen werden.

abschließend

Es gibt nur wenige Möglichkeiten, Java und SQL zu verwenden, aber zur Erinnerung.

Recommended Posts

Beim Einfügen von Java in MySQL erhalten Sie Auto_Increment_ID (automatischer Nummerierungswert) als Rückgabewert
[Java] Ruft mehrere Werte von einem Rückgabewert ab
[Java] So erhalten Sie den Maximalwert von HashMap
9 Entspricht dem Rückgabewert
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
Holen Sie sich die ID der automatischen Nummerierung
Der Weg von JavaScript nach Java
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Aktualisieren Sie JAVA auf die neueste Version auf 1.8.0_144 (beim Herunterladen aus dem Internet und Aktualisieren)
Zurückgeben eines Werts vom Modell an den Controller mithilfe des [Swift5] -Protokolls
Vergessen Sie nicht freizugeben, wenn Sie das Objekt von S3 erhalten!
[Java small story] Überwachen Sie, wann der Liste ein Wert hinzugefügt wird
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
So erhalten Sie den Einstellungswert (Eigenschaftswert) aus der Datenbank in Spring Framework
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
[Java] So erhalten Sie das aktuelle Verzeichnis
So erhalten Sie das Datum mit Java
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
[Förderung des Ruby-Verständnisses (1)] Wenn Sie von Java zu Ruby wechseln, verstehen Sie zuerst den Unterschied.
[Java] Beispiel eines Programms, das die Maximal- und Minimalwerte von einem Array abruft
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
So erhalten Sie eine Klasse von Element in Java
[Java] Ruft Werte zufällig aus einem Array ab
[Java] So erhalten Sie die endgültige umgeleitete URL
Ich möchte den Wert in Ruby erhalten
[Java] So erhalten Sie den Schlüssel und den Wert, die in Map gespeichert sind, durch iterative Verarbeitung
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
[Java] So erhalten Sie die URL der Übergangsquelle
Geben Sie den Maximalwert eines Arrays mithilfe der Java-Standardausgabe aus
[Java] Ich möchte die Differenz zum Datum berechnen
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
Quelle zum Abrufen der Umleitungsquell-URL in Java
Stand April 2018 So installieren Sie Java 8 auf einem Mac
Ich möchte mit Java8 StreamAPI redu () einen anderen Typ als das Eingabeelement zurückgeben.