赞
踩
我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件
举例代码如下
package com.example.sfdeliverysystem.service; import com.example.sfdeliverysystem.dao.mybatis.StashMapper; import com.example.sfdeliverysystem.model.StashPO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Service//加载service方法的包 @Slf4j//加载log方法的包 public class StashService {//创建一个方法 private StashMapper stashMapper;//调用接口并创建StashMapper类型的对象,这个类是Dao层的接口里的 /** * 新增Stash * @param stashPo */ public int insertStash(StashPO stashPo) { //调用接口中的insertStash方法, //这个是方法名,方法体在StashMapper.xml里边定义了 try{//实际写项目的时候每个方法体里边都应该写try和 //TODO 后续应该在mybatis中加上返回值,确定是否插入成功(1成功,0失败) stashMapper.insertStash(stashPo);//用stashMapper.来调用它体内的方法 return 1; }catch (NullPointerException e){//如果出错,终止try的运行,进入catch分支运行方法体 log.error("有部分属性为空,{0}",e); return 0; } }; /** * 查询Stash,返回我查询的值,成功返回查询的值,失败就不用返回了 * @return selectStash() */ public StashPO selectStash() {//定义返回值类型为StashPO,调用接口中的selectStash方法 StashPO stashpo = new StashPO();//新建局部变量,为了承接selectStash方法的返回值(结果) try { stashpo = stashMapper.selectStash();//承接selectStash方法的返回值(结果) }catch (Exception e) { log.error("有部分属性查询不到,{0}", e); //有部分属性查询不到nullException } return stashpo; }; /** * 更新Stash,成功返回1,失败返回0 * @param stashPo * @return */ public int updateStash(StashPO stashPo){ try{ stashMapper.updateStash(stashPo); return 1; }catch (Exception e) { log.error("有部分属性无法更新,{0}", e); return 0; } }; /** * 删除Stash,成功返回1,失败返回0 * @param cid * @return */ public int deleteStash(String cid) { try{ stashMapper.deleteStash(cid); return 1; }catch (Exception e) { log.error("有部分属性无法删除,{0}", e); return 0; } }; }
我的理解,controller层,是用来处理页面和services层的逻辑关系的一个层,下面由代码举例:
package com.example.sfdeliverysystem.controller; import com.example.sfdeliverysystem.dao.mybatis.StashMapper; import com.example.sfdeliverysystem.model.StashPO; import com.example.sfdeliverysystem.service.StashService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RequestMapping("/StashPO")//将请求和处理请求的控制器方法关联起来,建立映射关系,里边写实体类名 @RestController //定义一个StashController类,里边写对应的增删改查的方法,方法体为调用services层中的方法 public class StashController { private StashService stashService;//新建两个局部变量,还是主要为了调用和承接返回值 private int i; @GetMapping("/{insert}")//绿色的是在url中为了让其可以被识别的路径关键字,自己设置的 public int insertStash(StashPO stashPo){//依旧是调用接口中的方法然后承接其返回值,然后输出本身方法体的返回值 i = stashService.insertStash(stashPo); return i; }; @GetMapping("/{select}") public StashPO selectStash() { StashPO stashpo = new StashPO(); try{ stashpo = stashService.selectStash(); }catch (Exception e) { log.error("有部分属性查询不到,{0}", e); } return stashpo; }; @GetMapping("/{update}") public int updateStash(StashPO stashPo){ i = stashService.updateStash(stashPo); return i; } @GetMapping("/{delete}") public int deleteStash(String cid) { i = stashService.deleteStash(cid); return i; }; };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。