对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解

SSM 是 Spring + SpringMVC + Mybatis集成的框架。

MVC即model view controller。(模型,视图,控制器)

一、entity层(model层,domain层)

用于存放我们的实体类,类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个类。

主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。

二、mapper层(dao层)

数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的。该层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。
数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作。

三、Service层=service接口+servicelmpl实现类

用来存放业务逻辑处理,也是一些关于数据库处理的操作,但不是直接和数据库打交道,和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。然后就可以在Service层调用dao层的接口进行业务逻辑应用的处理。
当项目的业务逻辑简单时,可选择service层=service类;
当项目的业务复杂时,可选择Service层=service接口+serviceImpl实现类;
Service的impl是把mapper和service进行整合的文件
封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。

四、controller层

控制器,控制业务逻辑service,控制请求和响应,负责前后端交互。因为service中的方法是我们使用到的,controller通过接收前端传过来的参数进行业务操作,在返回一个指定的路径或者数据表。

项目实例图:

model层(entity层,domain层)

public class TbKeyword extends BaseEntity {
    private static final long serialVersionUID = 1L;

    private Long id;

    @Excel(name = "关键词")
    private String words;


    @Excel(name = "词性")
    private String flag;

    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId() { return id; }

    public String getWords() {
        return words;
    }

    public void setWords(String words) {
        this.words = words;
    }

    public String getFlag() {
        return flag;
    }

    public void setFlag(String flag) {
        this.flag = flag;
    }




    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("words", getWords())
                .append("flag", getFlag())
                .toString();
    }
}

对应数据库表字段 

对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解_第1张图片 

mapper层(dao层)

public interface TbKeywordMapper {
        /**
         * 关键词信息查询
         * @param id 车主信息查询主键
         * @return 车主信息查询
         */
        public TbKeyword selectTbKeywordById(Long id);
        /**
         * 查询关键词列表
         * @param tbKeyword 关键词查询
         * @return 关键词查询集合
         */
        public List selectTbKeywordList(TbKeyword tbKeyword);
        /**
         * 新增关键词查询
         *
         * @param tbKeyword 车主信息查询
         * @return 结果
         */
        public int insertTbKeyword(TbKeyword tbKeyword);
        //修改
        public int updateTbKeyword(TbKeyword tbKeyword);
        //删除
        public int deleteTbKeywordById(Long id);


}

Service层=service接口+servicelmpl实现类

public interface ITbKeywordService
{

    public TbKeyword selectTbKeywordById(Long id);

    public List selectTbKeywordList(TbKeyword tbKeyword);

    int insertTbUser(TbKeyword tbKeyword);

    int updateTbUser(TbKeyword tbKeyword);

    public int insertTbKeyword(TbKeyword tbKeyword);

    public int updateTbKeyword(TbKeyword tbKeyword);

    public int deleteTbKeywordById(Long id);

}

 

@Service
public class TbKeywordServiceImpl implements ITbKeywordService
{
    @Autowired
    private TbKeywordMapper tbKeywordMapper;

    /**
     * 查询关键词信息
     *
     * @param id 关键词信息查询主键
     * @return 关键词信息查询
     */
    @Override
    public TbKeyword selectTbKeywordById(Long id)
    {
        return (TbKeyword) tbKeywordMapper.selectTbKeywordById(id);
    }

    /**
     * 查询关键词列表
     *
     * @param tbKeyword 关键词查询
     * @return 关键词查询
     */
    @Override
    public List selectTbKeywordList(TbKeyword tbKeyword)
    {
        return tbKeywordMapper.selectTbKeywordList(tbKeyword);
    }

    @Override
    public int insertTbUser(TbKeyword tbKeyword) {
        return 0;
    }

    @Override
    public int updateTbUser(TbKeyword tbKeyword) {
        return 0;
    }

    /**
     * 新增关键词信息查询
     *
     * @param tbKeyword 关键词信息查询
     * @return 结果
     */
    @Override
    public int insertTbKeyword(TbKeyword tbKeyword)
    {
        return tbKeywordMapper.insertTbKeyword(tbKeyword);
    }

    /**
     * 修改关键词查询
     *
     * @param tbKeyword 车主信息查询
     * @return 结果
     */
    @Override
    public int updateTbKeyword(TbKeyword tbKeyword)
    {
        return tbKeywordMapper.updateTbKeyword(tbKeyword);
    }


    /**
     * 删除关键词查询信息
     *
     * @param id 车主信息查询主键
     * @return 结果
     */
    @Override
    public int deleteTbKeywordById(Long id)
    {
        return tbKeywordMapper.deleteTbKeywordById(id);
    }
}

controller层

@RestController
@RequestMapping("/mychery/keyword")
public class TbKeywordController extends BaseController
{
    @Autowired
    private ITbKeywordService tbKeywordService;

    /**
     * 查询关键词信息列表
     */
    @PreAuthorize("@ss.hasPermi('mychery:keyword:list')")
    @GetMapping("/list")
    public TableDataInfo list(TbKeyword tbKeyword)
    {
        startPage();
        List list = tbKeywordService.selectTbKeywordList(tbKeyword);
        return getDataTable(list);
    }

    /**
     * 导出关键词信息列表
     */
    @PreAuthorize("@ss.hasPermi('mychery:keyword:export')")
    @Log(title = "关键词信息查询", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    public AjaxResult export(TbKeyword tbKeyword)
    {
        List list = tbKeywordService.selectTbKeywordList(tbKeyword);
        ExcelUtil util = new ExcelUtil(TbKeyword.class);
        return util.exportExcel(list, "关键词信息查询数据");
    }

    /**
     * 获取关键词详细信息
     */
    @PreAuthorize("@ss.hasPermi('mychery:keyword:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return AjaxResult.success(tbKeywordService.selectTbKeywordById(id));
    }

    /**
     * 新增关键词信息查询
     */
    @PreAuthorize("@ss.hasPermi('mychery:user:add')")
    @Log(title = "车主信息查询", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody TbKeyword tbKeyword)
    {
        return toAjax(tbKeywordService.insertTbUser(tbKeyword));
    }

    /**
     * 修改关键词信息查询
     */
    @PreAuthorize("@ss.hasPermi('mychery:keyword:edit')")
    @Log(title = "关键词信息查询", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody TbKeyword tbKeyword)
    {
        return toAjax(tbKeywordService.updateTbKeyword(tbKeyword));
    }

    /**
     * 删除关键词信息查询
     */
    @PreAuthorize("@ss.hasPermi('mychery:keyword:remove')")
    @Log(title = "关键词信息查询", businessType = BusinessType.DELETE)
    @DeleteMapping("/{id}")
    public AjaxResult remove(@PathVariable Long id)
    {
        return toAjax(tbKeywordService.deleteTbKeywordById(id));
    }
}

你可能感兴趣的:(spring,java,spring,boot,后端)