这几天在学习springboot+mybatis框架,对于上面的几个文件夹中应该存放什么类,这些类有什么功能,还是有些迷糊。通过网上资料现在大致已经了解了。记下来以后有了新的理解再加上去

首先来说一下业务逻辑:

        controller层-->service接口层-->serviceImpl接口层实现类-->dao接口层-->daoImpl接口层实现类(也可以叫mapper)-->数据库

 一:Dao(Data Access Object):数据存储对象

      不管是什么框架,我们很多时候都会与数据库进行交互。如果遇到一个场景我们都要去写SQL语句,那么我们的代码就会很冗余。所以,我们就想到了把数据库封装一下,让我们的数据库的交道看起来像和一个对象打交道,这个对象通常就是DAO。当我们操作这个对象的时候,这个对象会自动产生SQL语句来和数据库进行交互,我们就只需要使用DAO就行了。

      DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

    通常我们在DAO层里面写接口,里面有与数据打交道的方法。SQL语句通常写在mapper文件里面的。

二:Service:服务

     服务是一个相对独立的功能模块,主要负责业务逻辑应用设计。首先也要设计接口,然后再设计其实现该接口的类。这样我们就可以在应用中调用service接口进行业务处理。service层业务实现,具体调用到已经定义的DAO的接口,封装service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性 。

     Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

三:Controller:控制器

    主要负责具体业务模块流程的控制,会调用Service层的接口来控制业务逻辑。Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。  

 四:model:模型

       模型通常认为是视图(view)的内核,模型就是指视图的数据

总结: 
个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。