关于品优购大型电商开发问题解答以及开发知识点详解day1(3)

关于品优购大型电商开发问题解答以及开发知识点详解day1(3)

1.数据库的创建以及逆向工程

​ 具体按照文档操作

​ 两点问题

​ 1.如果mysql版本为mysql8的同学需要导入在dao层换mysql8的jar包

并去除mysql5的jar包

image-20210627161716742

​ 2.将pinyougou—parent的pom文件规定的版本改为mysql8版本

(防止以后项目报错),如果不改连接不上数据库。

​ 3.!!!逆向工程只可运行一遍,

如果运行多遍会 .java文件不会受影响,而*Mapper.xml里的文件会写两遍

后面dao层映射过来就会一个映射两个方法会报错。

​ 4.由于要通过注册中心要在网络上传输,所以每一个实体类(pojo)必须实现Serializable接口

后端代码(品牌管理的后端代码)

​ 在pinyougou-sellergoods-interface 工程创建BrandService接口(略)

​ 在pinyougou-sellergoods-service 工程创建BrandServiceImpl类

代码如下重在理解(仅作参考请勿cv)

package com.pinyougou.sellergoods.service.impl;

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

import org.springframework.beans.factory.annotation.Autowired;
import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.pinyougou.mapper.TbBrandMapper;
import com.pinyougou.pojo.TbBrand;
import com.pinyougou.pojo.TbBrandExample;
import com.pinyougou.pojo.TbBrandExample.Criteria;
import com.pinyougou.sellergoods.service.BrandService;

import entity.PageResult;

@Service
public class BrandServiceImpl implements BrandService{
@Autowired
private TbBrandMapper brandMapper;

@Override
//1
public List<TbBrand> findAll() {
	// TODO Auto-generated method stub
	return brandMapper.selectByExample(null);
}

@Override
//2
public PageResult findPage(int pageNum, int pageSize) {
	
	PageHelper.startPage(pageNum, pageSize);
	Page<TbBrand> page=(Page<TbBrand>) brandMapper.selectByExample(null);
	return new PageResult(page.getTotal(), page.getResult());
}

@Override//无重复校验,后期待s改正
//3
public void add(TbBrand tbBrand) {
	brandMapper.insert(tbBrand);
}

@Override
//4
public TbBrand findOne(long id) {
	
	return brandMapper.selectByPrimaryKey(id);
}

@Override
//5
public void update(TbBrand tbBrand) {
	brandMapper.updateByPrimaryKey(tbBrand);
}

@Override
//6
public void delete(long[] ids) {
	for(long id:ids){
	brandMapper.deleteByPrimaryKey(id);
	}
}

@Override
//7
public PageResult findPage(int pageNum, int pageSize, TbBrand tbBrand) {
	PageHelper.startPage(pageNum, pageSize);
	TbBrandExample example=new TbBrandExample();
	Criteria criteria=example.createCriteria();
	if (tbBrand!=null) {
		if (tbBrand.getFirstChar()!=null&&tbBrand.getFirstChar().length()>0) {
			criteria.andFirstCharLike("%"+tbBrand.getFirstChar()+"%");
		}
		if (tbBrand.getName()!=null&&tbBrand.getName().length()>0) {
			criteria.andNameLike("%"+tbBrand.getName()+"%");
		}
	}
	Page<TbBrand> page=(Page<TbBrand>) brandMapper.selectByExample(example);
	return  new PageResult(page.getTotal(), page.getResult());
}

@Override
//8
public List<Map> selectOptionList() {
	
	return brandMapper.selectOptionList();
}

}

1.brandMapper.selectByExample(null);按条件查找,条件为null

2.PageHelper.startPage(pageNum, pageSize);分页插件传进来一个页面大小,第几页
Page page=(Page) brandMapper.selectByExample(null);
return new PageResult(page.getTotal(), page.getResult());获取总记录数,获取结果

在pinyougou-manager-web下的BrandController类

代码如下重在理解(仅作参考请勿cv)

package com.pinyougou.mangage.controller;

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

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.dubbo.config.annotation.Reference;
import com.pinyougou.pojo.TbBrand;
import com.pinyougou.sellergoods.service.BrandService;

import entity.PageResult;
import entity.Result;

@RestController//相当于@controller+@responseBody
@RequestMapping("/brand")
public class BrandController {
``

@Reference
private BrandService brandService;

@RequestMapping("/findAll")
public List<TbBrand> findAll(){
	return brandService.findAll();
}

@RequestMapping("/findPage")
public PageResult findPage(int pageNum,int pageSize){
	return brandService.findPage(pageNum, pageSize);
}

@RequestMapping("/add")
public Result add(@RequestBody TbBrand tbBrand){
	try{
		System.out.println(tbBrand);
		brandService.add(tbBrand);
		return new Result(true, "保存成功");
		}catch (Exception e) {
			e.printStackTrace();
			return new Result(false, "保存失败");
		}
}

//根据id查询
@RequestMapping("/findOne")
public TbBrand findOne(long id) {
	return brandService.findOne(id);
}
//修改数据
@RequestMapping("/update")
public Result update(@RequestBody TbBrand tbBrand){
	try{
		brandService.update(tbBrand);
		return new Result(true, "修改成功");
		}catch (Exception e) {
			e.printStackTrace();
			return new Result(false, "修改失败");
		}
}
//删除品牌
@RequestMapping("/delete")
public Result delete(long[] ids){
	try{
		brandService.delete(ids);
		return new Result(true, "删除成功");
		}catch (Exception e) {
			e.printStackTrace();
			return new Result(false, "删除失败");
		}
}

@RequestMapping("/search")
public PageResult search(@RequestBody TbBrand tbBrand,int pageNum,int pageSize){
	return brandService.findPage(pageNum, pageSize, tbBrand);
}

@RequestMapping("/selectOptionList")
public List<Map> selectOptionList(){
	return brandService.selectOptionList();
}

}

原理:

​ 由页面调用controller,再由controller调用远端的service,由service调用dao层。

​ controller处理前端发来的东西

​ service主要处理逻辑

​ dao层负责数据库交互

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值