dao层和mapper层和service关系,代码举例
时间: 2023-06-22 22:27:11 浏览: 128
简单DAO层示例
在一个典型的Java Web项目中,通常采用MVC(Model-View-Controller)架构模式,将业务逻辑分层,其中Dao层、Mapper层和Service层是三个重要的组成部分。下面是它们之间的关系:
Dao层:负责和数据库进行交互,封装了对数据的访问,提供了简单的接口给上层的Service层进行调用,从而实现了数据访问的解耦。Dao层通常是接口的形式,具体实现由Mapper层来完成。
Mapper层:是Dao层的具体实现,通过Mybatis框架提供的SqlSession对象实现了与数据库的交互,封装了对数据库的访问。Mapper使用注解或XML文件定义SQL语句,通过传入参数或返回结果,实现对数据库的增删改查操作。
Service层:负责业务逻辑的实现,是应用程序中的核心部分。Service层调用Dao层或Mapper层提供的方法,封装业务逻辑,提供简单的接口给Controller层进行调用。
下面是一个简单的代码示例:
UserDao.java
```
public interface UserDao {
User getUserById(int id);
}
```
UserMapper.xml
```
<select id="getUserById" resultType="User" parameterType="int">
select * from user where id = #{id}
</select>
```
UserMapper.java
```
public interface UserMapper {
User getUserById(int id);
}
```
UserServiceImpl.java
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(int id) {
return userMapper.getUserById(id);
}
}
```
UserController.java
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable int id) {
return userService.getUserById(id);
}
}
```
上述代码中,在Controller层中调用了Service层提供的getUserById方法,而Service层又调用了Mapper层提供的getUserById方法,最终实现了对数据库中用户信息的查询操作。
阅读全文