IN „Benutzer“ EINFÜGEN (Benutzername) WERTE"/> IN „Benutzer“ EINFÜGEN (Benutzername) WERTE">

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

So bedienen Sie den Batch-Einsatz von Mybaits

PHP中文网
PHP中文网Original
2017-06-21 16:04:121258Durchsuche

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>

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 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>

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>

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!

Stellungnahme:
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