Mybatis批處理(批量查詢,更新,插入)


mybatis批量查詢

 

注意這里的 in 和   <trim prefix="(" suffix=")"> 以及 in ( )三種方式的(例1(推薦),例2,例3(推薦)等價使用

 例1:

List<UBaseMenu> findMenuName(List<String> valueList);
<select id="findMenuName" resultType="java.lang.String" parameterType="java.util.List">
select menu_name
from menu
where menu_id in <foreach collection="list" item="valueList" open="(" close=")" separator=",">
#{valueList}
</foreach>
</select>

例2:

List<ReturnCodeEntity> selectByIds(@Param("ids") List<Long> ids);
<select id="selectByIds" parameterType="java.util.List"
            resultType="com.paic.ocss.gateway.model.entity.ReturnCodeEntity">
        SELECT
        id,
        code,
        message,
        recommendation,
        status
        FROM openapi_return_code
        WHERE id in
        <trim prefix="(" suffix=")">
            <foreach collection="ids" index="index" item="id" separator=",">
                #{id}
            </foreach>
        </trim>
    </select> 

 例3:

mapper接口代碼:

public List<User> findUserListByIdList(List<Long> idList);    

xml代碼:

<select id="findUserListByIdList" parameterType="java.util.ArrayList" resultType="User"> select * from user user <where> user.ID in ( <foreach collection="list" item="id" index="index" separator=","> #{id} </foreach> ) </where> </select> 

 

批量插入:

mapper.java

int addResource(List<Resource> ResourceList);

mapper.xml

<insert id="addResource" parameterType="java.util.List">
insert into resource (object_id, res_id, res_detail_value, 
res_detail_name)
values
<foreach collection="list" item=" ResourceList " index="index" separator=",">
(#{ResourceList.objectId,jdbcType=VARCHAR},
#{ResourceList.resId,jdbcType=VARCHAR},
#{ResourceList.resDetailValue,jdbcType=VARCHAR},
#{ResourceList.resDetailName,jdbcType=VARCHAR}
)
</foreach>
</insert>

 

批量更新:

mapper.java

int updateRoles(List<String> roleList);

mapper.xml

<update id="updateRoles" parameterType="java.util.List">
update role
set enabled = '0'
where role_id in <foreach collection="list" item="roleIds" index="index" open="(" separator="," close=")"> 
#{roleIds} 
</foreach>
</update>
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM