DAO简单介绍

DAO简单介绍

DAO模式介绍

DAO代表数据访问对象(Data Access Object),它描述了一个应用中DAO的角色。DAO的存在提供了读写数据库中数据的一种方法,把这个功能通过接口提供对外服务,程序中的其他模块通过这些接口来访问数据库

  1. DAO的主要目的就是将持久性相关的问题与一般的业务规则和工作流程隔离开来,它为定义业务层可以访问的持久性操作引入了一个接口并隐藏了实现的具体细节。该接口的功能将依赖于采用的持久性技术而改变,但是DAO接口可以基本保持不变。
  2. 服务对象不再和特定的接口实现绑定在一起,使他们更容易测试,因为他提供的是一种服务,在不需要连接数据库的条件下就可以进行单元测试,极大的提高了开发效率

DAO的理念

Spring提供了一套抽象的DAO类

  1. JdbcDaoSupport: JDBC DAO抽象类。开发者需要为它设置数据源(DataSource),通过子类,开发者能够获得JdbcTemplate来访问数据库

  2. HIbernateDaoSupport:Hibernate DAO抽象类。开发者需要为它配置Hibernate sessionFactory。通过子类,开发者能够获得Hibernate实现。

  3. JdoDaoSupport:Spring为JDO提供的DAO抽象类,开发者需要为它配置PersistenceManagerFactory

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DAO、Service、Controller 是 Java Web 应用程序中常用的三个层次的组件。其中 DAO 主要负责数据库操作,Service 主要负责业务逻辑处理,Controller 主要负责接收请求和返回响应。下面是它们的详细介绍和使用教程。 ## DAO(Data Access Object) DAO 是 Data Access Object 的缩写,直译为数据访问对象。DAO 层主要负责与数据库进行直接交互,它提供了一些基本的数据库操作方法(如增删改查),并且将这些方法封装成接口。这样,在 Service 层中就可以通过调用这些接口来进行数据库操作,而不需要关心具体的数据库实现。 使用 DAO 的好处是可以将数据库操作与业务逻辑分离,提高了代码的复用性和可维护性。 下面是一个简单DAO 接口的示例: ```java public interface UserDao { User getUserById(int id); void addUser(User user); void updateUser(User user); void deleteUser(int id); } ``` 上面的代码定义了一个 UserDao 接口,包含了查询用户、添加用户、修改用户和删除用户等四个基本操作。 ## Service Service 是业务逻辑层,负责处理业务逻辑。Service 层调用 DAO 层提供的接口来进行数据库操作,而后将处理后的数据返回给 Controller 层。 使用 Service 的好处是可以将业务逻辑处理与数据库操作分离,提高了代码的可维护性和可测试性。 下面是一个简单的 Service 接口的示例: ```java public interface UserService { User getUserById(int id); void addUser(User user); void updateUser(User user); void deleteUser(int id); } ``` 上面的代码定义了一个 UserService 接口,包含了查询用户、添加用户、修改用户和删除用户等四个基本操作。该接口与 UserDao 接口的方法相同,但是 UserService 主要负责处理业务逻辑。 ## Controller Controller 是控制层,负责接收请求和返回响应。Controller 层调用 Service 层提供的接口来处理业务逻辑,而后将处理后的结果返回给客户端。 使用 Controller 的好处是可以将请求和响应分离,提高了代码的可维护性和可测试性。 下面是一个简单的 Controller 类的示例: ```java @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @RequestMapping(value = "/{id}", method = RequestMethod.GET) public String getUserById(@PathVariable("id") int id, Model model) { User user = userService.getUserById(id); model.addAttribute("user", user); return "user"; } @RequestMapping(value = "/add", method = RequestMethod.POST) public String addUser(User user) { userService.addUser(user); return "redirect:/user/" + user.getId(); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT) public String updateUser(User user) { userService.updateUser(user); return "redirect:/user/" + user.getId(); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) public String deleteUser(@PathVariable("id") int id) { userService.deleteUser(id); return "redirect:/user"; } } ``` 上面的代码定义了一个 UserController 类,包含了查询用户、添加用户、修改用户和删除用户等四个基本操作。它使用了 Spring MVC 框架来处理请求和响应。其中,@Controller 注解标注该类是控制层,@RequestMapping 注解用于映射请求路径,@Autowired 注解用于注入 UserService 接口的实现。 以上是 DAO、Service、Controller 的简单介绍和使用教程。在实际开发中,我们可以按照这样的层次来组织代码,提高代码的可维护性和可测试性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值