使用Mybatis框架完成对db_user库 userinfo表的分页查询(请去下方第3题处下载db_user数据库脚本),要求每页3条数据,查询第2页的数据在控制台输出
时间: 2024-11-06 13:16:17 浏览: 47
Mybatis配合分页插件如PageHelper可以方便地实现分页查询。首先,你需要在项目中引入PageHelper依赖,并配置它。以下是一个简单的步骤:
1. **添加分页插件依赖**:如果你使用的是Maven,可以在pom.xml文件中添加PageHelper的依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.x.x</version> <!-- 根据实际版本号替换 -->
</dependency>
```
2. **配置Spring和Mybatis**:在Spring配置中注册PageInterceptor,启用分页功能:
```java
@Configuration
public class MybatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
// ...其他配置...
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
// 开启PageHelper插件
factory.setPlugins(new ArrayList<SqlPlugin>() {{
add(new PageHelperConfig());
}});
return factory.getObject();
}
}
```
3. **编写Mapper接口**:
```java
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.db_user.entity.UserInfo;
import org.apache.ibatis.annotations.Page;
import org.apache.ibatis.annotations.Select;
public interface UserInfoMapper extends BaseMapper<UserInfo> {
@Select("SELECT * FROM userinfo OFFSET #{offset} LIMIT #{limit}")
@Page(page = 2, size = 3) // 第2页,每页3条
List<UserInfo> findUserInfos(int pageNum, int pageSize);
}
```
4. **在Service层调用Mapper**:
```java
@Service
public class UserService {
private final UserInfoMapper userInfoMapper;
@Autowired
public UserService(UserInfoMapper userInfoMapper) {
this.userInfoMapper = userInfoMapper;
}
public void querySecondPage() {
List<UserInfo> userInfos = userInfoMapper.findUserInfos(2, 3); // 查询第2页数据
for (UserInfo userInfo : userInfos) {
System.out.println(userInfo);
}
}
}
```
然后在`querySecondPage`方法中,你可以看到第2页的3条用户信息会在控制台上打印出来。
阅读全文