oracle查询结果转成json_电商项⽬总结(3)商品的查询1.使⽤EasyUI分页插件实现数据的查询
声明分页插件
<configuration>
<settings>
<!-- 指定mybatis的⽇志记录⽅式,需要添加log4j的依赖 -->
<!-- 需要在src/main/resources下添加log4j.properties -->
<setting name="logImpl" value="LOG4J" />
</settings>
<typeAliases>
<!-- 将指定包下的所有的实体bean的别名取为类名⾸字母⼩写 -->
<package name="pc.pojo" />
</typeAliases>
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 -->
<property name="dialect" value="mysql" />
</plugin>
</plugins>
</configuration>
2.封装EasyUI结果集
分页查询插件1.结果集的封装和EasyUI分页插件需要的数据是对应的
public class PageResult<T> implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4089569594626456542L;
private List<T> rows;//封装的查询数据
private Long total;//封装总条数
2.easyUi数据请求
<table class="easyui-datagrid" id="itemList" title="商品列表"
data-options="singleSelect:false,collapsible:true,pagination:true,url:'/item/list',method:'get',pageSize:30,toolbar:toolbar"> <thead>
<tr>
<th data-options="field:'ck',checkbox:true"></th>
<th data-options="field:'id',width:60">商品ID</th>
<th data-options="field:'title',width:200">商品标题</th>
<th data-options="field:'cid',width:100">叶⼦类⽬</th>
<th data-options="field:'sellPoint',width:100">卖点</th>
<th data-options="field:'price',width:70,align:'right',formatter:EGO.formatPrice">价格</th>
<th data-options="field:'num',width:70,align:'right'">库存数量</th>
<th data-options="field:'barcode',width:100">条形码</th>
<th data-options="field:'status',width:60,align:'center',formatter:EGO.formatItemStatus">状态</th>
<th data-options="field:'created',width:130,align:'center',formatter:EGO.formatDateTime">创建⽇期</th>
<th data-options="field:'updated',width:130,align:'center',formatter:EGO.formatDateTime">更新⽇期</th>
</tr>
</thead>
</table>
3.服务端开发
1.商品服务接⼝
接⼝:
注意page和rows数据为消费端传递过来的分页条件
page:开始
rows:显⽰的条数
public PageResult selectIteam(Integer page,Integer rows);
实现类:
使⽤逆向⼯程⽣成的⽅法
Example:逆向⼯程⽣成的⽂件为Example结尾的是动态sql⽣成的⽅法主要针对单表的操作
public PageResult selectIteam(Integer page, Integer rows) {
//1.执⾏分页的炒作
Page ps = PageHelper.startPage(page, rows);
/**
* 这个的是逆向⼯程⽣成的⽂件传⼊个对应的对象即可
*/
TbItemExample example = new TbItemExample();
List<TbItem> list = tbItemMapper.selectByExample(example);
/
/2.数据的填充
PageResult<TbItem> result = new PageResult<TbItem>();
result.setRows(list);
/**
* 总数可在PageHelper:datagrid中取出来即可
*/
result.Total());
//3.返回数据
return result;
}
4.发布服务接⼝到dubbo的注册中⼼
<!-- 给当前的应⽤起个名字 -->
<dubbo:application name="ego-service" />
<!-- 配置注册中⼼ 1.address:注册中⼼IP地址,注意zookeeper是⼀个集,如果是集则需要将所有的zookeeper的IP和端⼝都注册
每个使⽤逗号分割 2.protocol:注册中⼼的类型 -->
<dubbo:registry
address="192.168.177.132:2181,192.168.177.132:2183,192.168.177.132:2183"
protocol="zookeeper"></dubbo:registry>
<!-- 配置协议和端⼝ -->
<dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
<!-- 发布到注册中⼼的服务接⼝接⼝的实现类创建已经交给类Spring所以这⾥可以直接引⽤ -->
<dubbo:service
interface="pc.service.ItemService" ref="itemServiceImpl"></dubbo:service>
5.消费端开发
消费端接⼝
参数服务端的参数⼀致接收前端页⾯传递的信息
/**
* 查询全部的商品信息
* @param page 前台页⾯传⼊的分页数据
* @param rows
* @return
*/
public PageResult<TbItem> selectTbitemList(Integer page,Integer rows);
实现类
直接调⽤远程代理对象即可
/**
* 商品的查询
*/
@Override
public PageResult<TbItem> selectTbitemList(Integer page, Integer rows) {
return this.itemService.selectIteam(page, rows);
}
控制器开发
注意返回的类型为Json格式需要Jackson的⽀持
在查询的时候给给分页查询进⾏条件的默认初始化
/**
* 全部商品的请求
* @return
*/
@RequestMapping(value = "/list",produces=MediaType.APPLICATION_JSON_VALUE+";charset=UTF-8",method=RequestMethod.GET)
@ResponseBody
public PageResult<TbItem> selectTbitemList(@RequestParam(defaultValue="1") Integer page,@RequestParam(defaultValue="30") Integer rows){ return this.managerItemService.selectTbitemList(page, rows);
}
效果图
下⾯的这这些数据根据返回的结果会算EasyUIdatagrid每次操作都会进⾏求的发送
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论