Heim > Datenbank > MySQL-Tutorial > So bedienen Sie den Batch-Einsatz von Mybaits

So bedienen Sie den Batch-Einsatz von Mybaits

PHP中文网
Freigeben: 2017-06-21 16:04:12
Original
1332 Leute haben es durchsucht

Wenn wir Daten stapelweise einfügen, müssen wir die ID der eingefügten Daten erhalten.

Auf diese Weise:

 <insert id="insertUser" parameterType="gys.entity.User" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user`
        (userName)
        VALUES
        (#{userName})</insert>
Nach dem Login kopieren

Das ist kein Problem.

Aber manchmal ist eine Stapeleinfügung erforderlich, und um die eingefügte ID zu erhalten

schreiben Sie so:

<insert id="insertUserBatch1" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user`
        (userName)
        VALUES<foreach collection="list" separator="," item="item">(#{item.userName})</foreach></insert>
Nach dem Login kopieren

Nach dem Ausführen tritt eine Ausnahme auf so.

Das liegt daran, dass die Version von mybatis, die Sie verwenden, zu niedrig ist. Ich verwende beispielsweise Version 3.2.2, was ein Fehler von mybatis ist.

Wenn Sie wechseln bis Version 3.4.4 wird es kein Problem geben.

Wenn die obige SQL-Anweisung anders geschrieben ist, wird erneut eine Ausnahme gemeldet (Einfügung in foreach einschließen)

Zum Beispiel:

<insert id="insertUserBatch2"> <foreach collection="list" separator=";" item="item"> INSERT INTO `user`
                (userName)
            VALUES
                (#{item.userName})         </foreach></insert>
Nach dem Login kopieren

Ebenso tritt bei Batch-Updates von update dieses Problem auf

<update id="updateUserBatch"><foreach collection="list" item="item" separator=";">update `user` set
                userName=#{item.userName}
            where
                userId=#{item.userId}</foreach></update>
Nach dem Login kopieren

Dies liegt daran, dass mybatis nur eine SQL-Anweisung ausführen kann Standard, und

kann den Pfad neu verknüpfen. Durch Hinzufügen von Parametern können Sie mehrere SQL-Anweisungen ausführen allowMultiQueries=true

Das obige ist der detaillierte Inhalt vonSo bedienen Sie den Batch-Einsatz von Mybaits. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage