ruoyi-vue集成beetlsql,查询时排序、分页的融合!
【代码】ruoyi-vue集成beetlsql,查询时排序、分页的融合!
·
在不改变原有前端ruoyi-vue的情况下,使现有的后端迁移到beetlsql框架中,使beetlsql的分页和排序查询融合到原有的排序中,示例如下:
application.yml配置:
## beetlsql 配置 ## beetlsql: sqlManager: true sqlManagers: sqlManager1 sqlManager1: #数据源 ds: masterDataSource #默认为com,此选项配置beetlsql.daoSuffix来自动扫描com包极其子包下的所有以Dao结尾的Mapper类。 basePackage: com.ruoyi.beetlsql.mapper #2.x模式是Dao,3.x改成Mapper daoSuffix: Mapper #2.x默认是DefaultNameConversion,3.x改成UnderlinedNameConversion nameConversion: org.beetl.sql.core.UnderlinedNameConversion #数据库方言,默认是org.beetl.sql.core.db.MySqlStyle.对应不同的数据库,其他还有OracleStyle,PostgresStyle,SqlServerStyle,DB2SqlStyle,SQLiteStyle,H2Style dbStyle: org.beetl.sql.core.db.MySqlStyle #默认是true,即向控制台输出执行时候的sql,参数,执行时间,以及执行的位置,每次修改sql文件的时候,自动检测sql文件修改. dev: true #默认为/sql, 作为存放sql文件的根目录,位于/resources/sql目录下 sqlPath: sql # sql 文件编码 sqlFileCharset: utf-8 # sqlManager2: # #数据源 # ds: slaveDataSource # #默认为com,此选项配置beetlsql.daoSuffix来自动扫描com包极其子包下的所有以Dao结尾的Mapper类。 # basePackage: com.ruoyi.beetlsql.mapper # #2.x模式是Dao,3.x改成Mapper # daoSuffix: Mapper # #2.x默认是DefaultNameConversion,3.x改成UnderlinedNameConversion # nameConversion: org.beetl.sql.core.UnderlinedNameConversion # #数据库方言,默认是org.beetl.sql.core.db.MySqlStyle.对应不同的数据库,其他还有OracleStyle,PostgresStyle,SqlServerStyle,DB2SqlStyle,SQLiteStyle,H2Style # dbStyle: org.beetl.sql.core.db.MySqlStyle # #默认是true,即向控制台输出执行时候的sql,参数,执行时间,以及执行的位置,每次修改sql文件的时候,自动检测sql文件修改. # dev: true # #默认为/sql, 作为存放sql文件的根目录,位于/resources/sql目录下 # sqlPath: sql # # sql 文件编码 # sqlFileCharset: utf-8
beetlSql在workOrder.md中的SQL语句(分页查询):
selectWorkOrderList === ```sql select #{page('*')} from work_order wk where 1 = 1 -- @if(isNotEmpty(workOrder.projectName)){ and project_name like concat('%', #{workOrder.projectName}) -- @} -- @if(isNotEmpty(workOrder.projectSort)){ and project_sort = #{workOrder.projectSort} -- @} -- @if(isNotEmpty(workOrder.reportPerson)){ and report_person = #{workOrder.reportPerson} -- @} -- @if(isNotEmpty(workOrder.telephone)){ and telephone = #{workOrder.telephone} -- @} 。。。。 ```
WorkOrderMapper:
public interface WorkOrderMapper extends BaseMapper<WorkOrder> { /** * 查询工单管理列表 * * @param workOrder 工单管理 * @return 工单管理集合 */ PageResult<WorkOrder> selectWorkOrderList(@Param("workOrder") WorkOrder workOrder, DefaultPageRequest pageRequest); }
Service服务设置:
public interface IWorkOrderService { /** * 查询工单管理列表 * * @param workOrder 工单管理 * @return 工单管理集合 */ public PageResult<WorkOrder> selectWorkOrderList(WorkOrder workOrder, DefaultPageRequest pageRequest); } @Service public class WorkOrderServiceImpl implements IWorkOrderService { /** * 查询工单管理列表 * * @param workOrder 工单管理 * @return 工单管理 */ @Override public PageResult<WorkOrder> selectWorkOrderList(WorkOrder workOrder,DefaultPageRequest pageRequest) { return workOrderMapper.selectWorkOrderList(workOrder,pageRequest); } }
BaseController.java中增加:
/** * beetlsql分页与ruoyi中pagehelper结合 * * @param pageResult 页面结果 * @return {@link TableDataInfo } * @Author: carl * @Date: 2023/08/17 16:21:39 */ protected TableDataInfo getDataTableBeetlSql(DefaultPageResult pageResult) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(pageResult.getList()); rspData.setTotal(pageResult.getTotalRow()); return rspData; }
WorkOrderController业务控制器中:
public class WorkOrderController extends BaseController { /** * 查询工单管理列表 */ @PreAuthorize("@ss.hasPermi('system:order:list')") @GetMapping("/list") public TableDataInfo list( WorkOrder workOrder) { // 表格通用===分页处理 startPage(); // 当前页和页数 Integer pageNum = PageUtils.getLocalPage().getPageNum(); Integer pageSize = PageUtils.getLocalPage().getPageSize(); // 默认排序 String orderBy = StringUtils.isNotEmpty(PageUtils.getLocalPage().getOrderBy()) ? PageUtils.getLocalPage().getOrderBy() : " open_time desc"; // 设置beetlsql的分页信息 DefaultPageRequest pageRequest = (DefaultPageRequest) DefaultPageRequest.of(pageNum, pageSize); // 设置排序 pageRequest.setOrderBy(orderBy); PageResult pr = workOrderMapper.selectWorkOrderList(workOrder, pageRequest); DefaultPageResult pageResult = (DefaultPageResult) pr; // printPageResult(pageResult); // 响应请求分页数据 return getDataTableBeetlSql(pageResult); } }
更多推荐
已为社区贡献2条内容
所有评论(0)