java分页功能

该文描述了一个基于SpringBoot的Java应用,使用MybatisPlus进行数据库操作,包括Dish实体类的定义,Mapper接口,以及Service层的服务实现。实现了分页查询Dish信息,同时关联查询其分类名称和口味集合。Dish类包含了字段如ID,名称,价格,分类ID等,并通过Mapper接口进行数据库交互。Service层的实现中,进行了模糊查询和分页查询的组合操作。
摘要由CSDN通过智能技术生成

package com.itheima.reggie.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import sun.tracing.dtrace.DTraceProviderFactory;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
菜品
*/
@Data
public class Dish implements Serializable {

private Long id;
//菜品名称
private String name;
//菜品分类id
private Long categoryId;
//菜品价格
private BigDecimal price;
//商品码
private String code;
//图片
private String image;
//描述信息
private String description;
//0 停售 1 起售
private Integer status;
//顺序
private Integer sort;
@TableField (fill = FieldFill.INSERT)
private Date createTime;//创建时间
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;//更新时间
@TableField(fill = FieldFill.INSERT)
private Long createUser;//创建用户
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;//更新用户
//菜品分类名称
@TableField(exist = false)
private String categoryName;
//设置一个口味集合

//菜品口味列表
@TableField(exist = false)
private List flavors=new ArrayList<>();
@TableField(exist = false)
private Integer copies;

}

package com.itheima.reggie.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.reggie.domain.DishFlavor;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DishFlavorMapper extends BaseMapper {
}

package com.itheima.reggie.service.impl;

import com.itheima.reggie.service.DishFlavorService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class DishFlavorServiceImpl implements DishFlavorService {
}

package com.itheima.reggie.service;

public interface DishFlavorService {
}

package com.itheima.reggie;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication//启动类
@MapperScan(“com.itheima.reggie.mapper”)//扫描mybatis
@Slf4j//lombok提供了打印日志
//@SpringBootApplication(exclude={DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

public class WebManageApplication {
public static void main(String[] args) {
SpringApplication.run(WebManageApplication.class,args);//选没有[]的那个
log.info(“项目启动成功”);
}
@Bean //分页插件配置
public MybatisPlusInterceptor plusInterceptor() {
//创建MybatisPlus拦截器
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//添加分页拦截器
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
//返回
return mybatisPlusInterceptor;
}
}

package com.itheima.reggie.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.reggie.domain.Category;
import com.itheima.reggie.domain.Dish;
import com.itheima.reggie.domain.DishFlavor;
import com.itheima.reggie.mapper.CategoryMapper;
import com.itheima.reggie.mapper.DishFlavorMapper;
import com.itheima.reggie.mapper.DishMapper;
import com.itheima.reggie.service.DishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class DishServiceImpl implements DishService {
@Autowired
private DishMapper dishMapper;
@Autowired
private CategoryMapper categoryMapper;
@Autowired
private DishFlavorMapper dishFlavorMapper;

@Override
public IPage<Dish> findPage(int page, int pageSize) {
    //1.分页查询所有菜品
    IPage<Dish> pg=new Page<Dish>(page,pageSize);
    QueryWrapper<Dish> qw = new QueryWrapper<>();
    pg = dishMapper.selectPage(pg, qw);
    List<Dish> list = pg.getRecords();//分页查询的10条菜品
    if (list.size()>0){
        //2.查询菜品所属分类
        for (Dish dish : list){
            Category category = categoryMapper.selectById(dish.getCategoryId());
             //组装当前菜品
            dish.setCategoryName(category.getName());
            //查询菜品的多个口味选择
            QueryWrapper<DishFlavor> qw2 = new QueryWrapper<>();
            qw2.eq("dish_id",dish.getId());
            List<DishFlavor> dishFlavorList = dishFlavorMapper.selectList(qw2);
            //组装当前菜品
            dish.setFlavors(dishFlavorList);
        }

    }


  return pg;
}

}

模糊查询+分页

package com.itheima.reggie.service.impl;

import com.itheima.reggie.service.DishFlavorService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class DishFlavorServiceImpl implements DishFlavorService {
}

package com.itheima.reggie.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itheima.reggie.domain.Dish;

public interface DishService {
IPage findPage(int page, int pageSize,String name);

}

package com.itheima.reggie.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.itheima.reggie.common.ResultInfo;
import com.itheima.reggie.domain.Dish;
import com.itheima.reggie.service.CategoryService;
import com.itheima.reggie.service.DishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DishController {
@Autowired
private DishService dishService;

@GetMapping("/dish/page")
public ResultInfo findPage(@RequestParam(defaultValue = "1")int page,
                           @RequestParam(defaultValue = "10")int pageSize,
                           String name){
    System.out.println(page);
    System.out.println(pageSize);
    IPage<Dish> pg = dishService.findPage(page, pageSize,name);
    return ResultInfo.success(pg);

//
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值