項目開發(fā)流程梳理總結(jié)
1.環(huán)境準備1.準備數(shù)據(jù)庫表(user,order);2.創(chuàng)建springboot 工程,引入對應(yīng)的起步依賴(web,mybatis,mybatisx,mysql驅(qū)動,lombok);3.配置文件application.properties中引入mybatis的配置信息,準備對應(yīng)的實體類;4.準備對應(yīng)的mapper,service(接口,實現(xiàn)類),controller基礎(chǔ)構(gòu)建;
5.前后端統(tǒng)一交互響應(yīng)結(jié)果Result
【資料圖】
@Data@NoArgsConstructor@AllArgsConstructorpublic class Result{
private Integer code; //響應(yīng)碼:1代表成功;0代碼失??;private String msg; // 響應(yīng)描述信息private Object data; // 返回的數(shù)據(jù)
public static Result success(){return new Rresult(1,"success",null);}
public static Result success(Object data){return new Rresult(1,"success",data);}
public static Result error(String msg){return new Rresult(0,msg,null);}
}
6.日志小技巧@Slf4j
log.info("查詢?nèi)坎块T數(shù)據(jù)");
7--1.controller.java---------------@GetMapping@DeleteMapping@PostMapping@UpdateMapping
package com.itheima.controller;
import com.itheima.pojo.Dept;import com.itheima.pojo.Result;import com.itheima.service.DeptService;import lombok.extern.slf4j.Slf4j;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
部門管理Controller*/@Slf4j@RequestMapping("/depts")@RestControllerpublic class DeptController {
//private static Logger log = LoggerFactory.getLogger(DeptController.class);@Autowiredprivate DeptService deptService;
/**
- 查詢部門數(shù)據(jù)
- @return*///@RequestMapping(value = "/depts",method = RequestMethod.GET) //指定請求方式為GET@GetMappingpublic Result list(){log.info("查詢?nèi)坎块T數(shù)據(jù)");//調(diào)用service查詢部門數(shù)據(jù)List
deptList = deptService.list();return Result.success(deptList);}
/**
- 刪除部門
- @return*/@DeleteMapping("/{id}")public Result delete(@PathVariable Integer id){log.info("根據(jù)id刪除部門:{}",id);//調(diào)用service刪除部門deptService.delete(id);return Result.success();}
/**
- 新增部門
- @return*/@PostMappingpublic Result add(@RequestBody Dept dept){log.info("新增部門: {}" , dept);//調(diào)用service新增部門deptService.add(dept);return Result.success();}}
7-2--------DeptServiceImpl.javapackage com.itheima.service.impl;
import com.itheima.mapper.DeptMapper;import com.itheima.pojo.Dept;import com.itheima.service.DeptService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;
import java.time.LocalDateTime;import java.util.List;
@Servicepublic class DeptServiceImpl implements DeptService {
@Autowiredprivate DeptMapper deptMapper;@Overridepublic List list() { return deptMapper.list();}@Overridepublic void delete(Integer id) { deptMapper.deleteById(id);}@Overridepublic void add(Dept dept) { dept.setCreateTime(LocalDateTime.now()); dept.setUpdateTime(LocalDateTime.now()); deptMapper.insert(dept);} }
7-3------------------interface DeptServicepackage com.itheima.service;
import com.itheima.pojo.Dept;
import java.util.List;
/**
部門管理/public interface DeptService {/*
- 查詢?nèi)坎块T數(shù)據(jù)
- @return*/List
list();
/**
- 刪除部門
- @param id*/void delete(Integer id);
/**
- 新增部門
- @param dept*/void add(Dept dept);}
7-4----------interface DeptMapperpackage com.itheima.mapper;
import com.itheima.pojo.Dept;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
部門管理/@Mapperpublic interface DeptMapper {/*
- 查詢?nèi)坎块T
- @return*/@Select("select * from dept")List
list();
/**
- 根據(jù)ID刪除部門
- @param id*/@Delete("delete from dept where id = #{id}")void deleteById(Integer id);
/**
- 新增部門
- @param dept*/@Insert("insert into dept(name, create_time, update_time) values(#{name},#{createTime},#{updateTime})")void insert(Dept dept);}
7-5-------------------interface EmpMapper ========reources.com.alex.mapper.EmpMapper.xml---------------------package com.itheima.mapper;
import com.itheima.pojo.Emp;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;import java.util.List;
/**
員工管理*/@Mapperpublic interface EmpMapper {
/**
- 查詢總記錄數(shù)
- @return///@Select("select count() from emp")//public Long count();
/**
- 分頁查詢,獲取列表數(shù)據(jù)
- @param start
- @param pageSize
- @return*///@Select("select * from emp limit #{start},#{pageSize}")//public List
page(Integer start, Integer pageSize);
/**
- 員工信息查詢
- @return*///@Select("select * from emp")public List
list(String name, Short gender,LocalDate begin,LocalDate end);
/**
- 批量刪除
- @param ids*/void delete(List
ids);}
7-6.--------EmpMapper.xml 映射文件--------------------
8.PageHelper分頁插件
PageHelper.startPage(page,pagesize)引入依賴:
@Overridepublic PageBean page(Integer page, Integer pageSize,String name, Short gender,LocalDate begin,LocalDate end) {//1. 設(shè)置分頁參數(shù)PageHelper.startPage(page,pageSize);
//2. 執(zhí)行查詢 List empList = empMapper.list(name, gender, begin, end); Page p = (Page) empList; //3. 封裝PageBean對象 PageBean pageBean = new PageBean(p.getTotal(), p.getResult()); return pageBean;} 10.文件上傳----------------------------------------------前端3要素:form post; enctype=multipart/form-data,input type=file
10.1上傳到服務(wù)器本地:
MultipartFile imageString originalFilename = image.getOriginalFilename(); //獲取文件的文件名image.transferTo(new File("E:\images\"+newFileName));getSize();//獲取文件的大小,單位字節(jié)getBytes();//獲取文件內(nèi)容的字節(jié)數(shù)組InputStream getInputStream();//獲取接收到的文件內(nèi)容的輸入流
10.2 上傳到云服務(wù)器:OSS 云對象存儲服務(wù)@PostMapping("/upload")public Result upload(MultipartFile image) throws IOException {log.info("文件上傳, 文件名: {}", image.getOriginalFilename());
//調(diào)用阿里云OSS工具類進行文件上傳 String url = aliOSSUtils.upload(image); log.info("文件上傳完成,文件訪問的url: {}", url); return Result.success(url);}application.yml 設(shè)置上傳文件的大小限制:servlet:multipart:max-file-size: 10MBmax-request-size: 100MB
11.springboot 配置文件:application.properties
@Value("endpoint") 注解private String endpoint;
12.springboot 配置文件:application.xml 推薦使用;
大小寫敏感,縮進只能使用空格,值前需空格;
表示注釋;
數(shù)據(jù)格式:對象/map集合;數(shù)組/list集合/set集合: -java -c#
- springboot 配置文件:application.xml 簡化:ConfigurationProperties(prefix = "aliyun.oss") //批量注解多個值
@Value("endpoint") 注解1個值
關(guān)鍵詞:

營業(yè)執(zhí)照公示信息