SpringBoot学习笔记——Dao、Service、Controller三层架构解耦

        为了实现代码的扩展性,方便项目的维护,在开发SpringBoot项目时尽可能要让每一个接口,每一个类实现的功能单一化,降低代码的耦合度,因此需要针对业务功能代码进行,分层管理。

1.Dao层

        Dao的英文全称是 data access object,顾名思义,Dao层的代码负责源数据对象的访问操作,涉及它们的增删改查,在SpringBoot当中,数据对象用Bean类封装
为了实现对不同类的数据访问操作,可以将这些操作的功能函数定义在接口当中,让每种数据对象都实现这个接口;
        在使用时,可以用接口来接收,例如:

Dao接口 dataTypeDao=Dao实现类实例;

        利用多态的特点使数据操作更加灵活。

2.Service层

        Service层通过调用Dao获取数据,在源数据的基础上,按照项目需求对其进行业务逻辑的处理,将处理的结果交给Controller层。

        比如我在Dao层通过数据库的select语句查询并得到了年龄大于等于35岁的员工信息,在此基础上我还需要将它们按照各自薪水降序排序进行操作,并将处理后的结果返回,让Controller层调用,那么这部分操作的代码将放在Service层当中来实现。

        在设计Service层的代码时也仿照Dao层,先设计一个公共的接口Service,根据业务的需要,让对应的数据逻辑操作类都实现这个接口,使用时还是采用接口接收实现类实例的方式,进行功能函数的调用,充分利用面向对象多态的特点进行编程&#

Spring Boot 项目中,DAO 主要负责与数据库进行交互,一般包括以下内容: 1. 数据访问对象接口的定义:在这个接口中定义了与数据库交互的方法,一般包括增删改查等操作。例如: ```java public interface UserDao { User getUserById(int id); void addUser(User user); void updateUser(User user); void deleteUser(int id); List<User> listUsers(); } ``` 2. 数据访问对象实现类:在这个类中实现了定义在接口中的方法,具体实现方式可能是使用 JDBC 进行操作,或者使用 ORM 框架(如 Mybatis 或 Hibernate)进行操作。例如使用 JdbcTemplate 实现: ```java @Repository public class UserDaoImpl implements UserDao { @Autowired private JdbcTemplate jdbcTemplate; @Override public User getUserById(int id) { String sql = "SELECT * FROM user WHERE id = ?"; return jdbcTemplate.queryForObject(sql, new Object[] { id }, new BeanPropertyRowMapper<User>(User.class)); } @Override public void addUser(User user) { String sql = "INSERT INTO user(name,age,gender) VALUES(?,?,?)"; jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getGender()); } @Override public void updateUser(User user) { String sql = "UPDATE user SET name=?, age=?, gender=? WHERE id=?"; jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getGender(), user.getId()); } @Override public void deleteUser(int id) { String sql = "DELETE FROM user WHERE id=?"; jdbcTemplate.update(sql, id); } @Override public List<User> listUsers() { String sql = "SELECT * FROM user"; return jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class)); } } ``` 3. 实体类:在 DAO 中需要使用实体类来表示数据库中的数据,一般使用 JavaBean 的方式来定义。例如: ```java public class User { private int id; private String name; private int age; private String gender; // 省略 getter 和 setter 方法 } ``` 以上就是 Spring Boot 项目中 DAO 的基本写法,当然具体的实现方式可能会因为使用的数据库或 ORM 框架的不同而有所不同,但是主要的概念和流程是类似的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值