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的实现类上打断点是没有作用的;一定要做好日志的输出,好容易确定错误的位置。

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

  1. SSM整合---实现全部用户查询

    SSM整合 准备 1.创建工程 2.导入必须jar包 链接: https://pan.baidu.com/s/1nvCDQJ3 密码: v5xs 3.工程结构 代码 SqlMapConfig < ...

  2. SpringBoot整合Mybatis关于分页查询的方法

    最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...

  3. SSM整合 mybatis多条件查询与分页

    多条件查询与分页: 通过页面的houseName.floorage获取值传到前端视图(HouseSearchVO)实体类中的houseName,floorage建立houseSearchVO对象. 通 ...

  4. SpringBoot 整合 Elasticsearch深度分页查询

    es 查询共有4种查询类型 QUERY_AND_FETCH: 主节点将查询请求分发到所有的分片中,各个分片按照自己的查询规则即词频文档频率进行打分排序,然后将结果返回给主节点,主节点对所有数据进行汇总 ...

  5. SSM整合Dubbo案例

    一.Consumer子类 MyController类 @Controller @RequestMapping("/login") public class MyController ...

  6. SSM整合Dubbo登陆案例

    登陆案例 一.创建Service项目存放共同数据 1.1  创建实体类 private long id; private String loginName; private String userNa ...

  7. SSM整合之---环境搭建

    SSM整合---环境搭建 l  查询所有用户的信息,保存用户信息 1.pom.xml配置项目所需的jar包 <dependencies> <dependency> <gr ...

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

    1.   课程计划 1.服务中间件dubbo 2.SSM框架整合. 3.测试使用dubbo 4.后台系统商品列表查询功能实现. 5.监控中心的搭建 2.   功能分析 2.1. 后台系统所用的技术 框 ...

  9. ssm实现分页查询

    ssm整合实现分页查询 一.通过limit查询语句实现分页,并展示 1.mapper.xml配置 <select id="selectUsersByPage" paramet ...

随机推荐

  1. Location - BOM对象

    Location 对象 Location 对象包含有关当前 URL 的信息. Location 对象是 Window 对象的一个部分,可通过 window.location 属性来访问. 例子 把用户 ...

  2. 02.socket实现远程调用

    不使用webservice使用以前的知识也可以实现远程系统之间的调用.用Socket可以.实现Socket通信. 开设一个端口.ip.

  3. PHP json_encode 让URL//不转义

    $json_info=json_encode((object)$data,JSON_UNESCAPED_SLASHES);

  4. Windows下Memcached的安装配置方法

    1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装. 3.再 ...

  5. Entity Framework在不同数据库下的配置

    http://blog.csdn.net/weiky626/article/details/17068593 http://blog.csdn.net/niewq/article/details/41 ...

  6. JMS-消息中间件的应用02-安装ActiveMQ-来自慕课学习-新手学习

    What is ActiveMQ?       -----突然好想打英文,好奇怪 请看来自官网的介绍: Apache ActiveMQ ™ is the most popular and powerf ...

  7. Oracle数据库之单表查询

    接着上一篇的分享,今天主要给大家分享的是关于数据中的单表查询,单表查询很基础,也很重要,但是任何一个初学者必须要掌握的姿势,单表查询就是对单个表进行操作,查询我们想要的数据.单表查询里面的内容也是比较 ...

  8. Java之集合框架vector类设计原理

  9. Build fat static library (device + simulator) using Xcode and SDK 4+

    155down votefavorite 185 It appears that we can - theoretically - build a single static library that ...

  10. MongoDB整理笔记のSharding分片

    这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding 的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群.MongoDB 的数据分块称为 chu ...