SSM 수 동 으로 페이지 논리 구현 - 비 PageHelper 방식
분석:
pageNo
(몇 페이지 데이터), pageSize
(각 페이지 의 항목 수) 이다.실현 과정
1. 매개 변수 가 져 오기
여기 서 돌아 온 것 은 json 데이터 인터페이스 입 니 다. 실현 방법 은 service 층 에 있 습 니 다.
@ResponseBody
@GetMapping("/allPage")
public String findAllPage(
@RequestParam(required = true,defaultValue = "1") Integer pageNo,
@RequestParam(required = false,defaultValue = "5") Integer pageSize) {
return customerService.findAllPage(pageNo,pageSize);
}
2. 데이터 캡 처
CustomerServiceImpl.java
@Override
public String findAllPage(Integer pageNo, Integer pageSize) {
List<Customer> customers = customerDao.findAll();
List<Map<String, String>> resultList = new ArrayList<>();
PageUtil<Customer> pageUtil = new PageUtil<>();
for (Customer customer : pageUtil.pageList(customers, pageNo, pageSize){
resultList.add(iterCustomer(customer));
}
return JsonUtil.toJSON(resultList);
}
PageUtil.java
public class PageUtil<T> {
private int beginIndex;//
private int endIndex;//
public List<T> pageList(List<T> list, int pageNo, int pageSize) {
int size = list.size();
beginIndex = (pageNo - 1) * pageSize;
endIndex = pageNo * pageSize > size ? size : pageNo * pageSize;
List<T> resultList = list.subList(beginIndex, endIndex);
return resultList;
}
}
iter Customer () 방법
public Map<String, String> iterCustomer(Customer customer) {
Map<String, String> resultMap = new HashMap<>();
resultMap.put("id", customer.getId().toString());
resultMap.put("name", customer.getName());
resultMap.put("phone", customer.getPhone());
resultMap.put("email", customer.getEmail());
return resultMap;
}
JsonUtil.java
public class JsonUtil {
// jackson json
private static ObjectMapper MAPPER = new ObjectMapper();
static String jsonString=null;
public static String toJSON(Object object){
try {
//jackson object json
jsonString = MAPPER.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return jsonString;
}
}
두 번 째 방법: SQL 로 페이지 를 나 누 어 현재 페이지 에 필요 한 데이터 만 조회 합 니 다.
분석:
1. 매개 변수 가 져 오기
분석 하 다.
int maxPage =(int) Math.ceil(count/pageSize.doubleValue());
CustomerController.java
@Controller
public class CustomerController {
@Autowired
CustomerService customerService;
@ResponseBody
@GetMapping("/allSql")
public String findAllPageSql(
@RequestParam(required = true,defaultValue = "1") Integer pageNo,
@RequestParam(required = false,defaultValue = "5") Integer pageSize) {
/**
* pageSize
* pageNo ,sql ;
* : = ( - 1) *
*/
//
int count = customerService.count();
//
int maxPage =(int) Math.ceil(count/pageSize.doubleValue());
// :
pageNo = pageNo>maxPage?maxPage:pageNo;
//
int index = (pageNo - 1) * pageSize > count ? count : (pageNo - 1) * pageSize;
return customerService.findAllPageSql(index, pageSize);
}
}
2. 레이 어 링 호출 방법
CustomerServiceImpl.java
@Service
public class CustomerServiceImpl implements CustomerService {
@Autowired
CustomerDao customerDao;
@Override
public String findAllPageSql(Integer index, Integer pageSize) {
return JsonUtil.toJSON(customerDao.findAllPageSql(index, pageSize));
}
}
CustomerDao.java
public interface CustomerDao {
List<Customer> findAllPageSql(Integer index,Integer pageSize);
}
3. 맞 춤 형 sql
CustomerMapper.xml
<mapper namespace="com.vue.dao.CustomerDao">
<select id="findAllPageSql" parameterType="java.lang.Integer" resultType="com.vue.entity.Customer">
SELECT * FROM t_customer LIMIT #{param1},#{param2}
select>
mapper>
Mapper. xml 맵 파일 에서 여러 매개 변수 참고 가 져 오기:
Mybatis 의 Mapper. xml 맵 파일 sql 조회 수신 여러 매개 변수 또는
Mybatis 의 Mapper. xml 맵 파일 sql 조회 수신 여러 매개 변수
이상
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssm에서 ansible 해 본 메모 (그냥 메모)SSM EC2에 SSM 에이전트를 넣고 EC2를 SSM의 관리하에 놓습니다. SSM 관리형 인스턴스에서 볼 수 있다면 OK 참고 링크 S3 버킷 생성 Ansible 템플릿을 zip으로 만들어 S3에 배치하기 위해. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.