springcloud基础功能

springcloud

基本的增删改出操作

服务器的Service的yml

server:
  port: 9011
spring:
  application:
    name: goods
  datasource:
    driver-class-name: com.mysql.jdbc.Driver # 连接数据库驱动
    url: jdbc:mysql://192.168.200.128:3306/changgou_goods?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC # 这里连接数据库,可以通过虚拟机也可以通过本地
    username: root
    password: root
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6868/eureka # 服务注册中心
  instance:
    prefer-ip-address: true
feign:
  hystrix:
    enabled: true

#hystrix 配置
hystrix:
  command:
    default:
      execution:
        timeout:
          #如果enabled设置为false,则请求超时交给ribbon控制
          enabled: true
        isolation:
          strategy: SEMAPHORE

通用的dao,只要是同一张表都可以用这个

package com.changgou.goods.dao;

import com.changgou.goods.pojo.Brand;
import tk.mybatis.mapper.common.Mapper;
//下面的Mapper<Brand表>
public interface BrandMapper extends Mapper<Brand> {
}

service接口

package com.changgou.goods.service;

import com.changgou.goods.pojo.Brand;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface BrandService {
    /**
     * 列表查询实现查询所有品牌信息
     */
     List<Brand> findAll();

    /**
     * 根据ID查询品牌信息
     * @return
     */
     Brand findOne(int id);

    /**
     * 新增品牌信息
     */
    void add(Brand brand);
    /**
     * 修改品牌数据
     */
    void edit(Brand brand);

    /**
     * 删除品牌信息根据ID删除
     */
    void deleteGoodsById(Integer id);

    /**
     * 品牌列表条件查询
     */
    List<Brand> list(Map<String,Object> searchMap);

    /**
     * 品牌列表的分页查询
     */
    Page<Brand> searchPage(int pageNum, int pageSize);

    /**
     * 品牌按条件的分页查询
     */

    Page<Brand> findPage(Map<String,Object> searchMap,int pageNum,int pageSize);

}

impl接口实现类

package com.changgou.goods.service.impl;

import com.changgou.goods.dao.BrandMapper;
import com.changgou.goods.pojo.Brand;
import com.changgou.goods.service.BrandService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import java.util.List;
import java.util.Map;


@Service
public class BrandServiceImpl implements BrandService {


    @Autowired
    private BrandMapper brandMapper;
    /**
     *
     * 品牌列表实现类
     * @return
     */
    public List<Brand> findAll() {
        List<Brand> list = brandMapper.selectAll();
        return list;
    }

    /**
     * 根据品牌id查询单条数据
     * @return
     */
    @Override
    public Brand findOne(int id) {
        Brand selectOne = brandMapper.selectByPrimaryKey(id);
        return selectOne;
    }

    /**
     * 品牌新增
     * @param brand
     */
    @Override
    public void add(Brand brand) {
        brandMapper.insertSelective(brand);
    }

    /**
     * 品牌更新
     * @param brand
     */
    @Override
    public void edit(Brand brand) {
        brandMapper.updateByPrimaryKey(brand);
    }

    /**
     * 通过id删除对应的品牌信息
     * @param id
     */
    @Override
    public void deleteGoodsById(Integer id) {
        brandMapper.deleteByPrimaryKey(id);
    }

    /**
     * 品牌列表条件查询
     * @param searchMap
     * @return
     */
    @Override
    public List<Brand> list(Map<String, Object> searchMap) {
        Example example=createExample(searchMap);
//        Example example = new Example(Brand.class);
//        //封装查询条件
//        Example.Criteria criteria = example.createCriteria();
//        if(searchMap!=null){
//            //品牌条件查询(模糊查询)like %
//            if(searchMap.get("name")!=null && !"".equals(searchMap.get("name"))){
//                criteria.andLike("name","%"+searchMap.get("name")+"%");
//            }
//            //通过品牌信息的首字母查询(精确查询)
//            if(searchMap.get("letter")!=null && !"".equals(searchMap.get("letter"))){
//                criteria.andEqualTo("letter",searchMap.get("letter"));
//            }
//        }
        List<Brand> brandList = brandMapper.selectByExample(example);
        return brandList;
    }

    /**
     * 分页查询品牌
     * @param pageNum
     * @param pageSize
     * @return
     */
    @Override
    public Page<Brand> searchPage(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        Page<Brand> page = (Page<Brand>) brandMapper.selectAll();
        return page;
    }

    /**
     * 分页条件查询品牌信息
     *
     * @param searchMap
     * @param pageNum
     * @param pageSize
     * @return
     */
    @Override
    public Page<Brand> findPage(Map<String, Object> searchMap, int pageNum, int pageSize) {
        //获取分页信息
        PageHelper.startPage(pageNum,pageSize);
//        Example example=new Example(Brand.class);
//        Example.Criteria criteria = example.createCriteria();
//
//        //品牌信息查询条件
//        if(searchMap!=null){
//            if(searchMap.get("name")!=null && !"".equals(searchMap.get("name"))){
//               criteria.andLike("name","%"+searchMap.get("name")+"%");
//            }
//            if (searchMap.get("letter")!=null && !"".equals(searchMap.get("letter"))){
//
//                criteria.andEqualTo("letter",searchMap.get("letter"));
//            }
//        }
        Example example=createExample(searchMap);
       Page<Brand> pageInfo =(Page<Brand>) brandMapper.selectByExample(example);
        return pageInfo;
    }
/**
 * 重复代码构造
 */
public Example createExample(Map<String,Object> searchMap){
    Example example=new Example(Brand.class);
    Example.Criteria criteria = example.createCriteria();
    //品牌信息查询条件
    if(searchMap!=null){
        if(searchMap.get("name")!=null && !"".equals(searchMap.get("name"))){
            criteria.andLike("name","%"+searchMap.get("name")+"%");
        }
        if (searchMap.get("letter")!=null && !"".equals(searchMap.get("letter"))){

            criteria.andEqualTo("letter",searchMap.get("letter"));
        }
    }
    return example;
}

}

controller

package com.changgou.goods.controller;

import com.changgou.entity.PageResult;
import com.changgou.entity.Result;
import com.changgou.entity.StatusCode;
import com.changgou.goods.pojo.Brand;
import com.changgou.goods.service.BrandService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/brand")
public class BrandController {
    @Autowired
    private BrandService brandService;

//    @GetMapping("/brand")
//    public List<Brand> findAll(){
//        List<Brand> brandList = brandService.findAll();
//        return brandList;
//    }

    /**
     * 查询所有的品牌数据
     * @return
     */
    @GetMapping("/brand")
    public Result<List<Brand>> findAll(){
        List<Brand> brandList = brandService.findAll();
        return new Result<>(true, StatusCode.OK,"查询成功",brandList);
    }
    /**
     * 根据id查询品牌单条数据
     */
    @GetMapping("/brandById/{id}")
    public Result findOneById(@PathVariable("id") int id){
        Brand brand = brandService.findOne(id);
        return new Result(true,StatusCode.OK,"查询成功",brand);
    }
    /**
     * 添加品牌信息
     */
    @PostMapping
    public Result add(@RequestBody Brand brand){
        brandService.add(brand);
        return new Result(true,StatusCode.OK,"添加成功");
    }
    /**
     * 更新品牌数据
     */
    @PutMapping("/{id}")
    public Result edit(@PathVariable("id") Integer id,@RequestBody Brand brand){
        brand.setId(id);
        brandService.edit(brand);
        return new Result(true,StatusCode.OK,"更新成功");
    }

    /**
     * 通过id删除品牌信息
     */
    @DeleteMapping("/{id}")
    public Result deleteGoodsById(@PathVariable("id") Integer id){
        brandService.deleteGoodsById(id);
        return new Result(true,StatusCode.OK,"删除成功");
    }
    /***
     * 通过品牌条件查询数据
     */
    @GetMapping("/search")
    public Result<List<Brand>> search(@RequestParam Map searchMap){
        List<Brand> list = brandService.list(searchMap);
        return new Result<>(true,StatusCode.OK,"查询成功",list);
    }

    /**
     * 分页查询品牌信息
     */
    @GetMapping("/search/{pageNum}/{pageSize}")
    public Result findPage(@PathVariable("pageNum") int pageNum,@PathVariable("pageSize") int pageSize){
        Page<Brand> page=brandService.searchPage(pageNum,pageSize);
        PageResult result = new PageResult(page.getTotal(),page.getResult());
        return new Result(true,StatusCode.OK,"查询成功",result);
    }

    /**
     *
     * 根据条件分页查询品牌数据
     */
    @GetMapping("/searchPage/{pageNum}/{pageSize}")
    public Result findPages(@RequestParam Map search,@PathVariable("pageNum") int pageNum,@PathVariable("pageSize") int pageSize){

        Page<Brand> pageList = brandService.findPage(search, pageNum, pageSize);
        PageResult result = new PageResult(pageList.getTotal(),pageList.getResult());

        return new Result(true,StatusCode.OK,"查询成功",result);
    }
}

pojo写在service-api

注意:@Table里面的name=“表名”,@Id代表是主键

package com.changgou.goods.pojo;

import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

@Table(name = "tb_brand")
public class Brand implements Serializable {
    @Id
    private Integer id;//品牌id
    private String name;//品牌名称
    private String image;//品牌图片地址
    private String letter;//品牌的首字母
    private Integer seq;//排序

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getLetter() {
        return letter;
    }

    public void setLetter(String letter) {
        this.letter = letter;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }
}

e;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getLetter() {
    return letter;
}

public void setLetter(String letter) {
    this.letter = letter;
}

public Integer getSeq() {
    return seq;
}

public void setSeq(Integer seq) {
    this.seq = seq;
}

}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值