使用 xml 的方式
在开始使用 xml 之前,添加配置,
配置完成后,可以编写 xml 和 mapper 代码,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.test.mapper.PeopleMapper">
<select id="selectById" parameterType="java.lang.Integer" resultType="com.test.po.People">
select * from people where id= #{id}
</select>
<select id="login" parameterType="java.lang.String" resultType="com.test.po.People">
select * from people where username= #{username} and password = #{password}
</select>
<select id="selectByName" resultType="com.test.po.People">
select * from `people` ${qwSql} limit ${pageNumber}, ${pageSize}
</select>
<select id="selectByName_COUNT" resultType="long">
select count(*) from `people` ${qwSql}
</select>
</mapper>
Mapper:
public interface PeopleMapper extends BaseMapper<User> {
People selectById(@Param("id") Integer id);
People login(@Param("username") String username, @Param("password") String password);
Page<People> selectByName(Integer pageNumber, Integer pageSize);
Long selectByName_COUNT(QueryWrapper qwSql);
XML 分页
示例代码如下:
QueryWrapper qw = QueryWrapper.create()
.where(People::getAge).eq(25)
.and(People::getId).ge(1);
Page<People> peoplePage = peopleMapper
.xmlPaginate("selectByName", Page.of(1, 3), qw);
System.out.println(peoplePage);
XML 代码如下:
<select id="selectByName" resultType="com.test.po.People">
select * from `people` ${qwSql} limit ${pageNumber}, ${pageSize}
</select>
<select id="selectByName_COUNT" resultType="long">
select count(*) from `people` ${qwSql}
</select>
功能
- 查询:
@Test
void test1(){
People people = peopleMapper.selectById(3);
System.out.println(people);
}
结果:
- 登入
@Test
void test2(){
People people = peopleMapper.login("aa", "aa");
System.out.println(people);
}
结果:
- 分页查询
@Test
void test3(){
QueryWrapper qw = QueryWrapper.create()
.where(People::getAge).eq(25)
.and(People::getId).ge(1);
Page<People> peoplePage = peopleMapper
.xmlPaginate("selectByName", Page.of(1, 3), qw);
System.out.println(peoplePage);
}
结果: