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

本文详细介绍了如何在Spring MVC项目中配置数据库,建立DAO层和Service层,以实现用户注册信息的数据库存取。首先配置数据库,接着创建RegisterDaoInterface接口和其实现类RegisterDao,使用JdbcTemplate进行数据操作。然后建立RegisterServiceInterface接口和RegisterService类,通过@Autowired注解实现依赖注入。最后在RegisterController中调用Service完成用户注册。
摘要由CSDN通过智能技术生成

前面探讨了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层返回具体页面和数据到客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值