MyBatis mapper动态代理 xml特殊字符和分页

mapper映射文件的特殊字符

RowBounds 分页

1.映射特殊字符

XML中共有5个特殊的字符,分别是:&<>"'。如果配置文件中的值包括这些特殊字符,就需要进行特别处理。有两种解决方法:

其一,采用特殊标签,将包含特殊字符的字符串封装起来。
例如:
image

<TitleName><![CDATA["姓名"]]></TitleName>

其二,使用XML转义序列表示这些特殊的字符,这5个特殊字符所对应XML转义序列为:

&  &amp;
<  &lt;
>  &gt;
"  &quot;
'  &apos;
例如:
<TitleName>&quot;姓名&quot;</TitleName>

2.RowBounds 分页

2.1 修改映射配置文件

<!--查询所有数据使用 RowBounds 实现分页处理--> 
<select id="selectUsersRowBounds" resultType="users"> 
	select * from users 
</select>

2.2 修改接口方法
image
2.3修改实现类
image
2.4 测试类
image

3.SQL的limit分页

3.1Mapper 映射配置

<!--    SQL的limit分页-->
    <select id="SQLLimitUser" resultType="users">
        select * from users limit #{offset}, #{limit}
    </select>

3.2接口方法 用@param注解传递多参数

    /**
     * SQL分页 limit
     * @param offset
     * @param limit
     * @return
     */
    List<Users> SQLLimitUser(@Param("offset")int offset, @Param("limit")int limit);

3.3实现方法

    @Override
    public List<Users> SQLLimitUser(int offset, int limit) {
        SqlSession ss = MyBatisUtil.getSqlSession();
        UsersMapper mapper = ss.getMapper(UsersMapper.class);
        List<Users> list = mapper.SQLLimitUser(offset, limit);
        return list;
    }

3.4验证方法

/**
 * @author
 */
public class SQLUsersLimitTest {
    public static void main(String[] args) {
        UsersMapper um = new UsersServiceImpl();
        List<Users> list = um.SQLLimitUser(1, 3);
        list.forEach(System.out::println);
    }
}
posted @ 2021-11-15 17:42  风的指引  阅读(314)  评论(0)    收藏  举报