SSM整合 分页查询

一、先准备实体类Category 准备映射表category_

Page类

public class Page {
 
    int start=0;
    int count = 5;
    int last = 0;
    public int getStart() {
        return start;
    }
    public void setStart(int start) {
        this.start = start;
    }
    public int getCount() {
        return count;
    }
    public void setCount(int count) {
        this.count = count;
    }
    public int getLast() {
        return last;
    }
    public void setLast(int last) {
        this.last = last;
    }
     
    public void caculateLast(int total) {
        // 假设总数是50,是能够被5整除的,那么最后一页的开始就是45
        if (0 == total % count)
            last = total - count;
        // 假设总数是51,不能够被5整除的,那么最后一页的开始就是50
        else
            last = total - total % count;      
    }
 
}

二、准备映射文件,映射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

总结:

  1. 首先浏览器上访问路径 /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 中显示数据
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LoneWalker、

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值