dao mvc连接mysql_详解Spring MVC配置Service和DAO层

前面探讨了Spring MVC的视图、模型与控制器,基本实现了Mooc项目的用户注册业务,但用户的注册信息并没有实际写入到数据库,只能说是伪注册。本篇会讨论如何将用户的注册信息写入到MySQL数据库,并从MySQL数据库中读取用户信息。

在详解Spring MVC的视图、模型与控制器一文中,给出了Mooc项目的用户注册业务流程图,但流程图并不完善,没有给出将注册信息写入数据库的流程,本文予以补充和完善,完善后的用户注册业务流程如下图所示。

54255693b85e3a2cd9f434768148c8f9.png图1 用户注册业务流程图

完善后的流程图添加了将注册信息写入数据库的过程,将注册信息写入数据库使用了RegisterService业务类和RegisterDao数据持久类。其中RegisterService类属于业务层,负责用户信息的注册业务处理;RegisterDao类属于数据持久层,负责数据库的读取和写入。RegisterService业务类之上是控制层,负责响应和处理视图层向服务端提交的请求。用户实体类UserInfo与数据库的用户表相对应,是数据库表的实现类。

完整的Spring MVC业务流程处理如下图所示:

0d0efc6f7f510e5ced8e2e5369e89b82.png图 2 Spring MVC业务处理流程

图中的DispatcherServlet为前端控制器,负责分发视图层的请求,并将请求发送到Controller(控制层),Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。

依据上面的Spring MVC业务处理流程(见图2),要实现Mooc项目的用户注册业务流程(见图1),需要在Mooc项目中做如下改动:

① 配置数据库

② 建立DAO层

③ 建立业务层

1、 配置数据库

在Spring使用JDBC访问MySQL数据库一文中已经详述了如何配置数据库,这里不再赘述。在Mooc项目src目录config包下新建数据库配置文件database.xml文件。

10ffd0beb4a8c377395ae3adc179eec5.png

在数据库配置文件中,配置访问数据库的驱动程序、数据库的访问地址及数据库的登录账号和密码。Spring MVC加载配置文件时,会调用已配置的数据库驱动程序,使用配置的登录账号和密码连接服务地址为url的数据库服务器。

修改Mooc项目的spring.xml配置文件,使用import标签导入database.xml文件。

5ba0ea62f063d1b35e71996a65d0d2f2.png

2、建立DAO层(数据持久层)

在Spring MVC中,对数据库的访问操作在DAO层(数据持久层)。规划DAO层时,一般来说先规划DAO层接口,接口声明了具体的数据库访问操作方法,方法的实现由具体数据库操作类来完成,Service层需要对数据库进行访问时,只需要调用DAO层的接口就可以,而不用关心具体的实现类。

DAO层的类一般放置在项目源代码的dao包下。在Mooc项目src目录下新建dao包,在dao包下新建RegisterDaoInterface接口类。

41256db6dd07bb919157c882b3b56ca4.png

RegisterDaoInterface接口类定义了三个接口,用于初始化数据源、插入用户记录、获取用户记录。用户数据表如下表所示:

fa3b85a1244c24e662d87bc9c4c5b34b.png表格1 用户表

在dao包下新建RegisterDao类来实现接口。

bbfa90ac0c42569b108fd664e9de24c9.png

代码中用到了JdbcTemplate类的queryForObject方法,该方法从数据库中查询符合条件的记录。queryForObject方法的第三个参数是RowMapper泛型类型,通过继承RowMapper泛型,可以将查询返回的ResultSet数据集映射到访问对象实体类。

44608b711cb1823c6c6375c58a4f39ce.png

修改数据库配置文件database.xml,添加DAO配置项,定义RegisterDao并关联数据源。

8d70526126f274caac0cf8e67cb5b516.png

3、建立Service层(业务层)

业务层主要用来处理业务逻辑,如Mooc项目的注册业务。规划业务层和规划DAO层一样,也是先规划业务层接口,接口声明了具体的业务处理方法,方法的实现由具体业务类来完成。Controller层需要调用业务方法时,只需调用Service层提供的接口就可以,而不用关心具体的业务实现类。

Service层的类一般放置在项目源代码的service包下。在Mooc项目src目录下新建service包,在service包下新建RegisterServiceInterface接口类。

77d52355782f790d8df85ccb2346c585.png

RegisterService类调用DAO层的RegisterDao类完成用户的注册和获取。RegisterService类的头部添加了Spring MVC注解@Service,注解@Service的作用是Spring MVC在扫描类时,会将添加@Service注解的类自动添加到Spring容器中,这些类无需在配置文件中进行定义,类似作用的注解还包括@Component、@Repository、@Controller。

在RegisterService类registerDao属性前添加@Autowired注解,使用@Autowired注解可以省略registerDao属性的get和set方法,Spring MVC会自动装配RegisterDao的实例到RegisterService类。

修改Mooc项目的RegisterController类,添加调用RegisterService注册用户信息的语句。

c6a0e1643ba7ddd14b4e0ca512a753bf.png

课程小结

Spring MVC的客户端与服务端的交互流程起始于DispatcherServlet,DispatcherServlet为前端控制器,负责分发视图层的请求,配置在web.xml文件中。DispatcherServlet依据相应的规则将客户端请求分发到目标Controller(控制层)来处理,Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值