mybatis使用技巧

新增

1.insert ignore

當插入數據時,出現錯誤,或重複數據,將不返回錯誤,只以警告形式返回。如果數據庫沒有數據,就插入新的數據,如果有數據的話就跳過這條數據。

 INSERT IGNORE INTO im_msg_send
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="platformType != null and platformType != ''">
                platform_type,
            </if>
            ...
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="platformType != null">
                #{platformType},
            </if>
            ...
            </trim>

2.insert into …on duplicate key update

primary或者unique重複時,則執行update語句,否則新增。
tips:ON DUPLICATE KEY UPDATE後放置需要更新的數據,未放到此處的列不會被更新

INRSERT INTO 
	`nursing_worker_score` (
	        `nursing_worker_id`,
	        `assess_target_id`,
	        `score`,
	        `type`,
	        `mtime`
    )
    VALUES
        (
            #{nursingWorkerId},
            #{targetUserId},
            #{score},
            #{type},
            now()
        )
        ON DUPLICATE KEY UPDATE
        mtime = values(mtime),
        score = values(score)

3. insert … select … where not exist

根據select的條件判斷是否插入,可以不光通過primary 和unique來判斷,也可通過其它條件。

INSERT INTO books (NAME) SELECT
	'MySQL Manual'
FROM
	DUAL
WHERE
	NOT EXISTS (SELECT id FROM books WHERE id = 1)

4.replace into

如果存在primary or unique相同的記錄,則先刪除掉。再插入新記錄。

REPLACE INTO books SELECT
	1,
	'MySQL Manual'
FROM
	books

修改

TODO

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章