Mybatis六种传参方式

2021-03-31  本文已影响0人  felixfeijs

Mybatis六种传参方式

顺序传参
Mapper代码
User getUserByParam(String phone, String password);
xml代码
<select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where `phone` = #{param1} and `password` = #{param2}
</select>
使用@Param传参
mapper代码
    User getUserByParam(@Param("key1") String phone, @Param("key2") String password);
xml代码
    <select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where `phone` = #{key1} and `password` = #{key2}
    </select>
使用Map传参
mapper代码
User getUserByParam(Map<String, Object> params);
xml代码
    <select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where `phone` = #{phone} and `password` = #{password}
    </select>
使用@Param和Map组合传参
mapper代码
User getUserByParam(@Param("params") Map<String, Object> params);
xml代码
    <select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where `phone` = #{params.phone} and `password` = #{params.password}
    </select>
使用实体类传参
mapper代码
User getUserByParam(User user);
xml代码
    <select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where `phone` = #{phone} and `password` = #{password}
    </select>
List传参
mapper代码
User getUserByParam(List<User> paramList);
xml代码
    <select id="getUserByParam" resultType="com.example.demo.model.User">
        select `user_id`,`real_name`,`nick_name`,`sex`,`phone`,`password` from bss_user
        where
        <foreach collection="list" item="item" separator=",">
            `phone` = #{item.phone} and `password` = #{item.password}
        </foreach>
    </select>
上一篇 下一篇

猜你喜欢

热点阅读