mybatis plus中写分页查询遇到的2个问题

1、第一个问题:Mybatis-plus使用Page时报错:“OFFSET”附近有语法错误

1.1、解决方案 :OFFSET前面缺少了order by create_time desc

参考博客:

https://blog.youkuaiyun.com/TGer_cxy/article/details/114304872

2、第二个问题:除非另外还指定了 TOP、OFFSET 或 FOR XML,否则,ORDER BY 子句在视图…

2.1、解决方案:

在这里插入图片描述
参考博客:

https://blog.youkuaiyun.com/weixin_44953966/article/details/122827604

### 使用 MyBatis Plus 整合达梦数据库进行分页查询 #### 配置依赖项 为了使 MyBatis Plus 能够与达梦数据库协同工作,项目中应引入相应的依赖库。确保 `pom.xml` 文件中有如下配置: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> <!-- 达梦 JDBC驱动 --> <dependency> <groupId>dm.jdbc.driver</groupId> <artifactId>dmjdbcdriver</artifactId> <version>对应版本号</version> </dependency> ``` #### 数据源配置 在 Spring Boot 的应用属性文件 (`application.yml`) 中设置数据源连接信息以及 MyBatis Plus 特定的配置选项。 ```yaml spring: datasource: url: jdbc:dm://localhost:端口号/数据库名 username: 用户名 password: 密码 driver-class-name: dm.jdbc.driver.DmDriver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` #### Mapper 接口编 创建继承自 `BaseMapper<T>` 的接口来操作特定的数据表。对于分页功能,则需利用内置的 `Page<T>` 类型来进行处理。 ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; public interface UserMapper extends BaseMapper<UserEntity> { /** * 自定义分页查询方法 */ Page<UserEntity> selectUserPage(Page<UserEntity> page, @Param("name") String name); } ``` #### Service 层逻辑实现 Service层负责业务逻辑,在这里可以调用上述定义好的mapper方法完成具体的分页查询任务。 ```java @Service public class UserService { private final UserMapper userMapper; public UserService(UserMapper userMapper){ this.userMapper = userMapper; } public IPage<UserEntity> getUserPages(Integer pageNum, Integer pageSize, String userName) { // 创建分页对象 Page<UserEntity> page = new Page<>(pageNum, pageSize); // 执行分页查询 return userMapper.selectUserPage(page, userName)[^2]; } } ``` #### Controller 控制器设计 最后一步是在控制器中暴露 RESTful API 给前端调用者访问。 ```java @RestController @RequestMapping("/users") public class UserController { private final UserService userService; public UserController(UserService userService){ this.userService = userService; } @GetMapping("/pages") public Result<IPage<UserEntity>> getUsersByPage( @RequestParam(value="currentPage", defaultValue="1") int currentPage, @RequestParam(value="pageSize", defaultValue="10") int pageSize, @RequestParam(required=false) String keyword) { try{ IPage<UserEntity> result = userService.getUserPages(currentPage, pageSize, keyword); return Result.success(result)[^3]; }catch(Exception e){ logger.error(e.getMessage(),e); throw new RuntimeException("获取用户失败"); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值