前面探讨了SpringMVC的视图、模型与控制器,基本实现了Mooc项目的用户注册业务,但用户的注册信息并没有实际写入到数据库,只能说是伪注册。本篇会讨论如何将用户的注册信息写入到MySQL数据库,并从MySQL数据库中读取用户信息。在详解SpringMVC的视图、模型与控制器一文中,给出了Mooc项目的用户注册业务流程图,但流程图并不完善,没有给出将注册信息写入数据库的流程,本文予以补充和完善,完善后的用户注册业务流程如下图所示。图1用户注册业务流程图完善后的流程图添加了将注册信息写入数据库的过程,将注册信息写入数据库使用了RegisterService业务类和RegisterDao数据持久类。其中RegisterService类属于业务层,负责用户信息的注册业务处理;RegisterDao类属于数据持久层,负责数据库的读取和写入。RegisterService业务类之上是控制层,负责响应和处理视图层向服务端提交的请求。用户实体类UserInfo与数据库的用户表相对应,是数据库表的实现类。完整的SpringMVC业务流程处理如下图所示:图2SpringMVC业务处理流程图中的DispatcherServlet为前端控制器,负责分发视图层的请求,并将请求发送到Controller(控制层),Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。依据上面的SpringMVC业务处理流程(见图2),要实现Mooc项目的用户注册业务流程(见图1),需要在Mooc项目中做如下改动:①配置数据库②建立DAO层③建立业务层1、配置数据库在Spring使用JDBC访问MySQL数据库一文中已经详述了如何配置数据库,这里不再赘述。在Mooc项目src目录config包下新建数据库配置文件database.xml文件。在数据库配置文件中,配置访问数据库的驱动程序、数据库的访问地址及数据库的登录账号和密码。SpringMVC加载配置文件时,会调用已配置的数据库驱动程序,使用配置的登录账号和密码连接服务地址为url的数据库服务器。修改Mooc项目的spring.xml配置文件,使用import标签导入database.xml文件。2、建立DAO层(数据持久层)在SpringMVC中,对数据库的访问操作在DAO层(数据持久层)。规划DAO层时,一般来说先规划DAO层接口,接口声明了具体的数据库访问操作方法,方法的实现由具体数据库操作类来完成,Service层需要对数据库进行访问时,只需要调用DAO层的接口就可以,而不用关心具体的实现类。DAO层的类一般放置在项目源代码的dao包下。在Mooc项目src目录下新建dao包,在dao包下新建RegisterDaoInterface接口类。RegisterDaoInterface接口类定义了三个接口,用于初始化数据源、插入用户记录、获取用户记录。用户数据表如下表所示:表格1用户表在dao包下新建RegisterDao类来实现接口。代码中用到了JdbcTemplate类的queryForObject方法,该方法从数据库中查询符合条件的记录。queryForObject方法的第三个参数是RowMapper泛型类型,通过继承RowMapper泛型,可以将查询返回的ResultSet数据集映射到访问对象实体类。修改数据库配置文件database.xml,添加DAO配置项,定义RegisterDao并关联数据源。3、建立Service层(业务层)业务层主要用来处理业务逻辑,如Mooc项目的注册业务。规划业务层和规划DAO层一样,也是先规划业务层接口,接口声明了具体的业务处理方法,方法的实现由具体业务类来完成。Controller层需要调用业务方法时,只需调用Service层提供的接口就可以,而不用关心具体的业务实现类。Service层的类一般放置在项目源代码的service包下。在Mooc项目src目录下新建service包,在service包下新建RegisterServiceInterface接口类。RegisterService类调用DAO层的RegisterDao类完成用户的注册和获取。RegisterService类的头部添加了SpringMVC注解Service,注解Service的作用是SpringMVC在扫描类时,会将添加Service注解的类自动添加到Spring容器中,这些类无需在配置文件中进行定义,类似作用的注解还包括Component、Repository、Controller。在RegisterService类registerDao属性前添加Autowired注解,使用Autowired注解可以省略registerDao属性的get和set方法,SpringMVC会自动装配RegisterDao的实例到RegisterService类。修改Mooc项目的RegisterController类,添加调用RegisterService注册用户信息的语句。课程小结SpringMVC的客户端与服务端的交互流程起始于DispatcherServlet,DispatcherServlet为前端控制器,负责分发视图层的请求,配置在web.xml文件中。DispatcherServlet依据相应的规则将客户端请求分发到目标Controller(控制层)来处理,Controller调用Service(业务层)处理业务,Service调用DAO(数据持久层)访问数据库,并完成数据库的增删改查操作,DAO层返沪处理结果给Service层,Service层再返回结果给Controller层,最后Controller层返回具体页面和数据到客户端。
转载请注明:http://www.aierlanlan.com/rzfs/5904.html