페이징 4

CRUD 서비스 만들기, SQL 페이징 쿼리의 이용(ROWNUM).2022-02-14

우선적으로 사용자에게 DB의 테이블들을 보여주기 위해서는 전부 다 보여주는 것이 아니라, 특정한 갯수대로 끊어서 보여주어야 한다. ROWNUM에 대한 자세한 설명은 내가 SQL공부할떄 작성했던 포스팅을 참고: ROWNUM을 이용한 페이징 출력, 중복제거 distinct 키워드, 문자열 자르기 SUBSTR 함수. 2021-07-29 — "꾸준하게, 지속하자" (tistory.com) select * from (select RowNUM as num, N.* from (select * from notice ORDER BY REGDATE DESC) as N ) where num between 1 and 10; 이렇게 2개의 서브쿼리를 사용하면 페이징을 구현 할 수 있다. 이유는 문법에 있다. SQL의 selec..

Programming/JDBC 2022.02.14

CRUD 서비스 만들기 3.(페이징쿼리 적용부터~). 2021-09-01

우선 지난시간에 내가 짠 쿼리대로, notice 테이블을 서버로부터 가져올때, 등록시간이 최신순으로(등록순 내림차순 한다음), 10개씩 가져오는 쿼리를 적용해 보겠다. NoticeService 클래스가 너무 길어서 SELECT 기능을 담당하는 getList() 부분만 가져왔다. public List getList(int page) throws ClassNotFoundException, SQLException{ String url="jdbc:oracle:thin:@localhost:1521/xepdb1"; String sql ="select * from(select ROWNUM as num, n.* from (select * from notice order by regdate disc) n ) " + "w..

Programming/JDBC 2021.09.01

CRUD 서비스 만들기 2(Select 문으로 레코드 리스트 형태로 가져오기). 2021-08-31

우선 이전 포스팅에서 완성하지 못했던, NoticeService 클래스와 서버에서 레코드를 저장하는 그릇역할을 할, Notice 클래스를 완성했다. NoticeService 클래스 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.ulsanboy.app.entity.Notice; //다른패키지에 만들어놓은 Notice 클래스를 참조. public class NoticeService { publ..

Programming/JDBC 2021.08.31

ROWNUM을 이용한 페이징 출력, 중복제거 distinct 키워드, 문자열 자르기 SUBSTR 함수. 2021-07-29

우선 페이징 이라 함은, 한번에 테이블 중 몇개씩 끊어서 나열하는 것인지 기준에 따라 정렬시키는 방법이다. 이런 페이징을 하기 위해서는 테이블을 특정 기준에 따라 나눌수 있어야 한다. 그런데 일반적으로 생성한 테이블들을 보면 어떤 추가된 순서에 따라 숫자를 부여하는 칼럼을 사용자가 만들어놓지 않은 이상 그런 순차적으로 뚜렷하게 나눌수 있는 기준이 되는 칼럼을 찾기 어렵다. 예를 들면 저번에 내가 만들어놓은 이런 칼럼에서, 기준으로 잡을 것이 안보일 것이다. 이때 순차적으로 페이징할수 있는 기준을 만드는 것이 바로 ROWNUM을 이용하는 것이다. 바로 위 사진의 제일 왼쪽에 1 부터 4까지 붙여진 것이 있는데 이것은 오라클에서 자체적으로 select 문을 통해 결과집합을 생성하면서(where절 단계에서) ..

Programming/SQL 2021.07.29