SSM整合 分页查询
一、先准备实体类Category 准备映射表category_
二、准备映射文件,映射sql语句
Category.xml需要和CategoryMapper放在同一个包下面,并且namespace必须写CategoryMapper的完整类名
1、CategoryMapper接口
2、Category.xml
三、Service层
service是业务层,是使用一个或多个模型执行操作的方法。
1. 封装通用的业务逻辑,操作。
如一些数据的检验,可以通用处理。
2. 与数据层的交互。
3. 其他请求:如远程服务获取数据,如第三方api等。
1.CategoryService接口
2.CategoryService接口实现类
CategoryServiceImpl被注解@Service标示为一个Service
并且装配了categoryMapper
service实现类实现了service接口,进行具体的业务操作。
- 在java中接口是多继承的,而类是单继承的,如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活
- 要提供不同的数据库的服务时,我们只需要面对接口用不同的类实现即可,而不用重复地定义类
- 编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想。
四、SpringMVC的控制层CategoryController
接收客户端的请求,然后调用Service层业务逻辑,所以这里自动装配了CategoryService,获取到数据,传递数据给视图层(客户端)用于视觉呈现
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
四、web.xml
在WEB-INF目录下新增加web.xml,这个web.xml有两个作用:
1. 通过ContextLoaderListener在web app启动的时候,获取contextConfigLocation配置文件的文件名applicationContext.xml,并进行Spring相关初始化工作
2. 有任何访问,都被DispatcherServlet所拦截,这就是Spring MVC那套工作机制了。
五、applicationContext.xml
在src目录下新建applicationContext.xml文件,这是Spring的配置文件,其作用
1. 通过注解,将Service的生命周期纳入Spring的管理
<context:annotation-config /><context:component-scan base-package="com.demo.service" />
2. 配置数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
3. 扫描存放SQL语句的Category.xml
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
4. 扫描Mapper,并将其生命周期纳入Spring的管理
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
六、springMVC.xml
七、listCategory.jsp
在WEB-INF下创建jsp目录,并创建文件listCategory.jsp。
在这个jsp文件中,通过forEach标签,遍历CategoryController传递过来的集合数据。
八、访问http://localhost:8080/SSM/listCategory
总结:
首先浏览器*问路径 /listCategory
2. tomcat根据web.xml上的配置信息,拦截到了/listCategory,并将其交由DispatcherServlet处理。
3. DispatcherServlet 根据springMVC的配置,将这次请求交由CategoryController类进行处理,所以需要进行这个类的实例化
4. 在实例化CategoryController的时候,注入CategoryServiceImpl。 (自动装配实现了CategoryService接口的的实例,只有CategoryServiceImpl实现了CategoryService接口,所以就会注入CategoryServiceImpl)
5. 在实例化CategoryServiceImpl的时候,又注入CategoryMapper
6. 根据ApplicationContext.xml中的配置信息,将CategoryMapper和Category.xml关联起来了。
7. 这样拿到了实例化好了的CategoryController,并调用 list 方法
8. 在listCategory方法中,访问CategoryService,并获取数据,并把数据放在"cs"上,接着服务端跳转到listCategory.jsp去
9. 最后在listCategory.jsp 中显示数据