maven先导入:
<!--分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
mapper.xml:
<select id="find" resultType="com.fruitsalesplatform.entity.CommoditiesRetailerOver" parameterType="String">
SELECT
/*@rowNo := @rowNo + 1 AS rowNo,*/
c.fruitid,
c.`name` as fruitname,
c.price,
c.locality,
o.contractid
FROM
/*( SELECT @rowNo := 0 ) a,*/
commodities c,
middle_tab m,
contract o
WHERE
c.fruitid = m.fruitid and
o.contractid = m.contractid
<if test='_parameter != null and _parameter != ""'>and name like "%"#{name}"%"</if>
</select>
<select id="finduser" resultType="com.fruitsalesplatform.entity.CommoditiesRetailerOver" parameterType="String">
select r.name,c.contractid,c.barcode from contract c ,retailer r where c.retailerid = r.retailerid order by barcode
</select>
BaseDao:
public interface BaseDao<T> {
public T get(Serializable id);
public List<T> find(Map map);
public void insert(T entity);
public void update(T entity);
public void deleteById(Serializable id);
public void delete(Serializable[] sid);
}
BaseDaoImpl:
public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T> {
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
super.setSqlSessionFactory(sqlSessionFactory);
}
private String ns;
public String getNs() {
return ns;
}
public void setNs(String ns) {
this.ns = ns;
}
public List<T> find(Map map){
List<T> oList = this.getSqlSession().selectList(ns + ".find", map);
return oList;
}
public T get(Serializable id){
return this.getSqlSession().selectOne(ns + ".get", id);
}
public void insert(T entity) {
this.getSqlSession().insert(ns + ".insert" ,entity);
}
public void update(T entity) {
this.getSqlSession().update(ns +".update",entity);
}
public void deleteById(Serializable id) {
this.getSqlSession().delete(ns + ".deleteById" ,id);
}
public void delete(Serializable[] ids) {
this.getSqlSession().delete(ns + ".delete",ids);
}
}
Dao:
public interface SelectDao extends BaseDao<CommoditiesRetailerOver> {
public List<CommoditiesRetailerOver> find(int page,int age,@Param(value = "name") String name);
public List<CommoditiesRetailerOver> finduser();
}
Daoimpl:
@Repository
public class SelectDaoImpl extends BaseDaoImpl<CommoditiesRetailerOver> implements SelectDao {
public SelectDaoImpl(){
super.setNs("com.fruitsalesplatform.mapper.selectMapper");
}
/* @Override
public List<CommoditiesRetailerOver> finds(String name) {
return this.getSqlSession().selectList(this.getNs()+".find",name);
}*/
@Override
public List<CommoditiesRetailerOver> find(int page, int age,String name) {
return this.getSqlSession().selectList(this.getNs()+".find",name);
}
public List<CommoditiesRetailerOver> finduser() {
return this.getSqlSession().selectList(this.getNs()+".finduser");
}
}
service:
public interface SelectService {
/*public List<CommoditiesRetailerOver> find(String name);*/
public List<CommoditiesRetailerOver> find(int page,int age,String name);
public List<CommoditiesRetailerOver> finduser();
}
serviceImpl:
@Service
public class SelectServiceImpl implements SelectService {
@Autowired
SelectDao selectDao;
/* public List<CommoditiesRetailerOver> find(String name) {
return selectDao.finds(name);
}*/
public List<CommoditiesRetailerOver> find(int page,int age,String name) {
PageHelper.startPage(page,age);
return selectDao.find(page,age,name);
}
public List<CommoditiesRetailerOver> finduser() {
return selectDao.finduser();
}
}
controller:
@Controller
public class SelectController extends BaseController {
@Autowired
SelectService selectService;
@RequestMapping("/select/selects.action")
public ModelAndView index(@RequestParam(name = "page",required = true,defaultValue = "0")
int page,
@RequestParam(name = "size",required = true,defaultValue = "10")
int size,String name){
ModelAndView modelAndView = new ModelAndView();
List<CommoditiesRetailerOver> commoditiesList=selectService.find(page,size,name);
List<CommoditiesRetailerOver> retailerList = selectService.finduser();
List<CommoditiesRetailerOver> list = commoditiesList.stream().map(m -> {
retailerList.stream().filter(m2-> Objects.equals(m.getContractId(),m2.getContractId())).forEach(m2-> {
m.setBarCode(m2.getBarCode());
m.setFruitname(m.getFruitname());
m.setLocality(m.getLocality());
m.setName(m2.getName());
});
return m;
}).collect(Collectors.toList());
list = list.stream().sorted(Comparator.comparing(CommoditiesRetailerOver::getBarCode))
.collect(Collectors.toList());
PageInfo pageInfo= new PageInfo(list);
System.out.println("pageInfo"+pageInfo);
modelAndView.addObject("pageInfo",pageInfo);
modelAndView.setViewName("/select/Page");
return modelAndView;
}
}
jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false"%>
<html>
<head>
<title>asdf</title>
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
*{margin:0; padding:0;} #menuContent a{text-decoration:none;color:#ffffff}
</style>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.page.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<%@ include file="../menu.jsp" %><br/>
<div class="container"><%--栅格系统--%>
<div class="row clearfix">
<div class="col-md-12 column"><%--将屏幕分为12份--%>
<div class="page-header">
<h1>
<small>显示所有水果关联用户</small>
</h1>
</div>
</div>
</div>
<div class="row" id="hiddle">
<div class="col-md-8 column">
<form action="/select/selects.action" class="form-inline" style="float: right" method="post" >
<input id="select" type="text" name="name" placeholder="请输入要查询的水果名称" class="form-control">
<input type="submit" value="查询" class="btn btn-primary" οnclick="validatee()">
</form>
</div>
</div>
<div class="row clearfix" id="hiddles">
<div class="col-md-12 column">
<table id="px" class="table table-hover table-striped">
<thead>
<tr>
<th>合同号</th>
<th>水果</th>
<th>产地</th>
<th>零售商</th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${pageInfo.list}" varStatus="status">
<tr id="test">
<td id="abcs" style="line-height: 40px">${item.barCode}</td>
<td id="abcd" style="line-height: 40px">${item.fruitname}</td>
<td style="line-height: 40px">${item.locality}</td>
<td style="line-height: 40px">${item.name}</td>
</tr>
</c:forEach>
</tbody>
</table>
<%--<li><a href="${pageContext.request.contextPath}/select/selects.action?page=1&size=10" aria-label="Previous">首页</a></li>--%>
<a id="spage" href="${pageContext.request.contextPath}/select/selects.action?page=${pageInfo.pageNum-1}&size=10">上一页</a>
<C:forEach begin="1" end="${pageInfo.pages}" var="pagenum">
<a href="${pageContext.request.contextPath}/select/selects.action?page=${pagenum}&size=10">${pagenum}</a>
</C:forEach>
<a id="nextpage" href="${pageContext.request.contextPath}/select/selects.action?page=${pageInfo.pageNum+1}&size=10">下一页</a>
<%--<li><a href="${pageContext.request.contextPath}/select/selects.action?page=${pageInfo.pages}&size=10" aria-label="Next">尾页</a></li>--%>
</div>
</div>
</div>
</body>
</html>