SSM整合dubbo 进行分页查询

1.先书写Mapper和sql语句

public interface ActEntityMapper {
    int deleteByPrimaryKey(String actId);

    int insert(ActEntity record);

    int insertSelective(ActEntity record);

    ActEntity selectByPrimaryKey(String actId);

    int updateByPrimaryKeySelective(ActEntity record);

    int updateByPrimaryKey(ActEntity record);
    // 测试查询
    ActEntity selectOneById(String actId) ;

    /**
     *
     * @param size 查询数量
     * @param from 偏移量
     * @return
     */
    List<ActEntity> selectAll(@Param("size") int size, @Param("from") int from) ;

    // 查询总记录数
    Integer selectListTotal();
}

ActEntityMapper.xml

 <!--测试,分页查询所有信息-->
  <select id="selectAll" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from hx_act
    limit #{from},#{size}
  </select>
  <!--查询表中的总记录数-->
  <select id="selectListTotal" resultType="java.lang.Integer">
    select
    count(*)
    from hx_act
  </select>
  <!--测试查询-->
  <select id="selectOneById" resultMap="BaseResultMap" parameterType="java.lang.String">
    select
      act_id,
      act_name,
      act_desc
    from hx_act
    where act_id = #{actId}
  </select>

2.传入的实体类、返回的实体类以及bean对象

传入实体:

@Api("查询h_act所有的信息")
public class SelectAllReq extends BaseListReq {
}

返回实体:

@Data
@Api("查询hx_act表中的所有信息")
public class SelectAllResp extends ResponseEntity {
    @ApiModelProperty("返回的数据")
    private List<ActBean> list ;
    @ApiModelProperty("总记录数")
    private int total ;
    public SelectAllResp(){
        super(SUCCESS);
    }

    public SelectAllResp(String errCode) {
        super(errCode);
    }
}

bean对象,用于对象之间的转换:

public class ActBean extends BaseEntity {
    private String actId;

    private String actName;

    private String actDesc;

    private Integer actType;

    private Integer actModel;

    private Date startTime;

    private Date endTime;

    private String repeatType;

    private Integer status;

    private String shareContext;

    private String extInfo;

    private String joinUrl;

    private Date createTime;
}

3. 书写Service接口,和具体的实现类

Service接口:

@Api(value = "杨连军测试service",produces = "application/json", description = "杨连军测试service")
public interface YangTestServiceI {
    @ApiOperation("根据actId查询这条记录")
    YangTestResp getActInfoById (String actId) ;
    @ApiOperation("分页查询所有记录")
    SelectAllResp getListInfo (SelectAllReq selectAllReq) ;
}

实现类和所需要的方法:

  @ApiOperation("传入偏移量和记录数,分页查询所有记录")
    @Override
    public SelectAllResp getListInfo(SelectAllReq selectAllReq) {
        SelectAllResp selectAllResp  = new SelectAllResp() ;
        List<ActBean> beanList = new ArrayList<>() ;
        Integer total = actEntityMapper.selectListTotal() ;
        System.out.println("总记录数:"+total);
        if (null == total||total==0){
            // 没有信息
            selectAllResp.setErrCode(ErrorCodeConst.DATA_NOT_EXISTED);
            return selectAllResp ;
        }
        // 调用dao,获得返回的记录
        List<ActEntity> list = actEntityMapper.selectAll(selectAllReq.getSize(),selectAllReq.getFrom());

        // 转换类型
        beanList = converUserList(list) ;
        selectAllResp.setList(beanList);
        selectAllResp.setTotal(total);
        return selectAllResp ;
    }

    /**
     * @desc 不同泛型List之间的转换
     * @param list
     * @return
     */
    public List<ActBean> converUserList(List<ActEntity> list){
        List<ActBean> beanList = new ArrayList<>() ;
        if (Lists.isEmpty(list)){ // 如果传入的是空,直接返回空的List<ActBean>
            return beanList ;
        }
        for (ActEntity actEntity : list){ // 便利
            ActBean actBean = new ActBean() ;
            // 对象的复制
            BeanUtils.copyProperties(actEntity,actBean);
            beanList.add(actBean) ;

        }
        return beanList ;
    }

4.书写控制器

    // 查询所有的act信息
    @RequestMapping("/getListActInfo")
    @ResponseBody
    public void getListActInfo (HttpServletRequest request, HttpServletResponse response,SelectAllReq selectAllReq){
        System.out.println("传入参数:"+selectAllReq.getSize()); ;
        SelectAllResp selectAllResp = yangTestServiceI.getListInfo(selectAllReq) ;
        System.out.println("返回的状态码:"+selectAllResp.getErrCode());
        resultString(selectAllResp.toJsonStr(),response,false);
    }

6.需要注意的点

(1) 在消费者上书写完成接口,要进行clean,然后install,放到本地的仓库中,这样真正的消费者才能够找得到。同时,书写完成DAO的模块也要进行同样的操作。

(2) 因为真正的web端的消费者是调用的本地仓库中的包,所以在service的实现类上打断点是没有作用的;一定要做好日志的输出,好容易确定错误的位置。

原文地址:https://www.cnblogs.com/theskying/p/10273571.html

时间: 2024-08-28 19:35:36

SSM整合dubbo 进行分页查询的相关文章

淘淘商城02——dubbo框架整合_商品列表查询实现_分页

1.   课程计划 1.服务中间件dubbo 2.SSM框架整合. 3.测试使用dubbo 4.后台系统商品列表查询功能实现. 5.监控中心的搭建 2.   功能分析 2.1. 后台系统所用的技术 框架:Spring + SpringMVC + Mybatis+dubbo 前端:EasyUI 数据库:mysql 2.2. 系统间通信 由于淘淘商城是基于SOA的架构,表现层和服务层是不同的工程.所以要实现商品列表查询需要两个系统之间进行通信. 如何实现远程通信? 1.使用WebService:效率

ssm实现分页查询

ssm整合实现分页查询 一.通过limit查询语句实现分页,并展示 1.mapper.xml配置 1 <select id="selectUsersByPage" parameterType="int" resultMap="UserMap"> 2 SELECT * number from user limit #{page},10 3 </select> 查询user表,从第page项开始,每次返回10条数据 2.ind

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将

SSM整合步骤

SSM- CRUD SSM : SpringMVC+Spring+Mybatis Create (新建) +Retrieve (查询) +Update(更新)+Delete(删除) 功能点 1:分页 2:数据校验:JQuery前端校验+JSR后端校验. 3:ajax 4:Rest风格URL:使用HTTP协议请求方式的动词,来表示对对资源的操作:GET(查询).POST(新增).PUT(修改).DELETE(删除). 技术点 1:基础框架-SSM (SpringMVC+Spring+MyBatis

ssm整合时出现 org.springframework.beans.factory.BeanCreationException :Error creating bean with name ‘XXX’ 异常的原因及解决方法

ssm整合时出现 org.springframework.beans.factory.BeanCreationException :Error creating bean with name 'XXX' 异常的原因及解决方法(只是可能出现下列几种,不包含全部) 此异常为:注入 bean 失败异常,也就是找不到注入的bean. 可能有以下几种原因: 1.bean未注解或者注解错误 2.项目整合的时候jar包冲突 3.'XXX'的配置有错误 解决:1,3仔细检查就是,网上大部分的人应该是2这种错误,

java web开发入门八(ssm整合)基于intellig idea

ssm整合 一.导入相关包 二.开发流程 1.写entity package com.eggtwo.euq.entity; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; public class Member { private int id; public int getId() { return id; } public void setId(int id) { this.id

SpringBoot整合dubbo(yml格式配置)

yml文件 如果只作为服务的消费者不用暴露端口号,扫描的包名根据自己service改 dubbo: application: name: springboot-dubbo-demo #应用名 registry: address: zookeeper://127.0.0.1:2181 #zookeeper地址 # port: 2181 #提供注册的端口 protocol: name: dubbo port: "20889" #dubbo服务暴露的端口 scan: com.bw.ssm.s

bos 第5天(定区的添加、定区的分页查询、hessian远程调用实现获取客户信息)

BOS项目笔记 第5天 今天内容安排: 1.添加定区功能 2.定区分页查询 3.hessian入门----远程调用技术 4.基于hessian实现定区关联客户 1. 添加定区 定区可以将取派员.分区.客户信息关联到一起. 页面:WEB-INF/pages/base/decidedzone.jsp 第一步:使用下拉框展示取派员数据,修改combobox的URL地址,发送请求 第二步:在StaffAction中提供listajax方法,查询没有作废的取派员,返回json数据 第三步:在StaffSe

SSM整合框架实现ajax校验

SSM整合框架实现ajax校验 刚学习了ssm框架,ajax校验成功,分享下 1.导入jar包 2.配置spring-servlet.xml 1 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 2 <property name="messageConverters"> 3 <list> 4 &l