2017-08-07 18 views
0

我想打一个PageRequestJdbcTemplate。什么我不想做的就是使用JPA。我搜索了近4个小时,但没有找到任何东西,如果可能的usefull.Please告诉我,我该怎么办呢如何使Pagerequest与JdbcTemplate的春季启动

编辑 我想从Oracle重新加载数据,但不希望使用JPARepository 这里是我的代码。此是我的控制器

@RestController 
@RequestMapping(value = "/admin") 
public class OrderController { 

@Autowired 
private OrderService orderService; 

@RequestMapping(value = "/reload", method = RequestMethod.GET) 
public List<Order> reload(){ 
    return orderService.reload(); 
} 

这是我的服务

@Service 
public class OrderService { 

@Autowired 
private OrderRepository orderRepository; 

public List<Order> reload(){ 
    return orderRepository.reload(); 
} 

这是我的仓库

@Repository 
public interface OrderRepository { 

public List<Order> reload(); 
} 

这是我repositoryImpl类

@Repository 
public class OrderRepositoryImpl implements OrderRepository{ 

@Autowired 
private JdbcTemplate jdbcTemplate; 
@Override 
public List<Order> reload(){ 

} 
+0

我编辑我question.Sorry给了较少的信息 – Gulshan

回答

0

使用Spring数据公地

import org.springframework.data.domain.Page; 
import org.springframework.data.domain.PageRequest; 
import org.springframework.data.domain.Pageable; 
import org.springframework.data.repository.support.PageableExecutionUtils; 
import org.springframework.data.repository.support.PageableExecutionUtils.TotalSupplier; 

/** 
* @param content list from jdbcTemplate 
* @param pageNum : zero-based, if null default to zero 
* @param pageSize : if null default list size 
* @return Page object (zero-based) 
*/ 
public static <T> Page<T> pagingList(List<T> content, Integer pageNum, Integer pageSize){ 
    Assert.notNull(content, "List content must not be null!"); 
    pageNum = (pageNum == null) ? 0 : pageNum; 
    pageSize = (pageSize == null) ? content.size() : pageSize; 

    PageRequest pageable = new PageRequest(pageNum, pageSize); 

    //System.out.println(" ======== PAGEABLE ========= "); 
    //System.out.println(" pageable.getOffset  : " + pageable.getOffset()); 
    //System.out.println(" pageable.getPageNumber : " + pageable.getPageNumber()); 
    //System.out.println(" pageable.getPageSize : " + pageable.getPageSize()); 

    TotalSupplier totalSupplier = new TotalSupplier() { 

     @Override 
     public long get() { 
      return content.size(); 
     } 
    }; 

    int fromOffset = pageable.getOffset(); 
    int toOffset = Math.min(content.size(), fromOffset + pageSize); 
    List<T> listPaging = new ArrayList<>(); 
    if(fromOffset < toOffset){ 
     listPaging = content.subList(fromOffset, toOffset); 
    } 
    return PageableExecutionUtils.getPage(listPaging, pageable, totalSupplier); 
} 

以上代码确实:

  • 从JdbcTemplate的
  • 接受列表创建PageRequest对象(页次和pageSize的)
  • 创建从元素fromOffset和toOffset
原始清单开始子列表

注意对名单的庞大规模,还没有测试它。

参考:Github spring-data-jpa