Springboot中pojo层,DAO层(mapper层),service层,controller层的理解

  • pojo

实体类这一层,与数据库中的属性值基本保持一致。有的开发写成pojo,有的写成model,也有domain,也有dto(这里做参数验证,比如password不能为空等),实体类如果不懂什么东西的话,那你就想成是范围。

mysql的数据不是一个表吗,每个表有几行和几列,pojo层中要定义一个User对象,该对象中的数据对应mysql表中的数据。

  • mapper(DAO)

DAO层叫数据访问层,全称为data access object,也叫mapper层 。某个DAO一定是和数据库的某一张表一一对应的,其中封装了CRUD(增加Create、检索Retrieve、更新Update和删除Delete)基本操作,DAO只做原子操作。无论多么复杂的查询,dao只是封装增删改查。至于增删查改如何去实现一个功能,dao是不管的。

定义一个接口,继承自BaseMapper,可以通过该接口来访问数据库,进行增删改查。

@Mapper
public interface UserMapper extends BaseMapper<User> {
}
//这是一个UserMapper

@Autowired//使用数据库必须得用该注解
UserMapper usermapper;
usermapper.insert();//往数据库中插入一个数据,mybatisplus会把该语句转换成sql语句
usermapper.selectList(null);//在数据库中选择数据

关于selectList方法:

里面的参数类型传递的得是queryWrapper该类的对象。

queryWrapper又是什么:

queryWrapper是mybatis plus中实现查询的对象封装操作类,可以封装sql对象,包括where条件,order by排序,select字段等等

用人话说就是,通过queryWrapper可以限定我们查询的条件。

那queryWrapper怎么用:

先来个常用的:

@GetMapping("/user/{userId}/")
    //@PathVariable就是从路径中获取变量
    //使用@PathVariable之后,@GetMapping("/user/{userId}/")中的userId就传到了(@PathVariable int userId)中
    public User getuser(@PathVariable int userId) {
        //定义了一个类型为User的QueryWeapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        //从User(User对应着数据库)中选出 id 为 userId 的数据
        queryWrapper.eq("id", userId);
        return userMapper.selectOne(queryWrapper);
    }

queryWrapper的所有方法:

  • service

通过数据库实现具体的业务

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

service包含了serviceImpl(service接口的实现类) 是提供给controller 使用的,针对于某些业务将 dao 的对于某些表的crud进行组合,也就是说间接的和数据库打交道。

  • controller

控制层,前后端交互

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。管理业务(Service)调度和管理跳转的。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
service分别是什么,并且它们之间的关系是怎样的? 在Java开发pojo是指存放实体类的模型,其定义了与数据库表字段一致的类属性,提供了get/set方法、toString方法以及构造函数。每个数据库表对应一个pojo类。 dao是数据持久,负责与数据库进行交互的任务封装。在dao,首先设计了接口,然后在配置文件进行接口的实现。dao的作用是访问数据库,执行SQL语句完成对数据的增删改查操作。数据持久化操作将数据存放到持久化介质,比如将数据通过Hibernate插入到数据库service是业务逻辑,负责完成具体的业务功能设计。与dao类似,首先设计了接口,然后创建实现类,并在配置文件进行接口与实现类的关联。service可以调用dao的接口来处理业务逻辑的应用。service的实现文件封装了mapperservice的整合。封装service的业务逻辑有利于业务逻辑的独立性和重复利用性。 这三个之间的关系是,controller控制整个业务流程,调用service的接口来处理具体的业务逻辑。service则调用dao的接口来访问数据库执行相关操作。这样的设计可以将业务逻辑的处理和数据访问进行分离,提高代码的可维护性和可测试性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [pojodaoservice的关系](https://blog.csdn.net/kanzhu0370/article/details/117838691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot pojo Dao service controller的作用](https://blog.csdn.net/weixin_51051633/article/details/123330620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XSS9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值