Servlet & Jsp

[JSTL] JSTL의 SQL사용 columnNames와 rows 의 사용

Razelo 2021. 1. 18. 10:16

JSTL에서 SQL 문을 사용하는 예제를 작성하던 도중에 본적이 없는 구문을 찾았다. 

그래서 어떻게 동작하는지 궁금해서 찾아보았다. 

 

위에 보면 알겠지만 10번째와 15번째에 columnNames와 rows 로 접근하여 열과 행의 정보를 가져온다. 그런데 이게 어떻게 이런게 열과 행의 정보를 가져오는지가 이해가 안됬다. 설명도 없을 뿐더러 저장되어있는 필드 변수의 값을 가져오는건지 아니면 메소드를 사용해서 가져오는건지 잘 이해가 안됬다. (애초에 사실 ${} 표현에 대한 이해가 조금 부족했던 것 같다. 그래서 이해가 안된거지) 

 

그래서 일단은 저기에 쓰인 rs 참조변수가 ResultSet 타입이어서 java api 문서에서 ResultSet파트에서 메소드를 다 봤는데, 없었다. 

근데 이게 접근법이 잘못된거였다. 애초에 jstl 에서 사용하는건데, jstl sql 로 검색했어야했다. 그래서 jstl sql columnNames라고 검색하니까 바로 떴다. 

 

즉 저 위에서 사용하는 rs.columnNames는 바로 getColumnNames()에 접근하여 그 값을 읽어오는 거였다...

 

근데 행의 row관련 정보를 읽어오는 건 대부분 rowsByIndex로 사용하던데, 조금 더 찾아보니까 두개가 따로 있는거였다.  rowsByIndex랑 rows랑 따로따로 있다. 그리고 살펴보니 rows 좀더 간편하다. rowsByIndex는 따로 더 사용법이 있다. 즉 rowsByIndex 하나만 써줬다고 끝나는게 아니다. 아무튼 그래서 난 rows 를 주로 사용할 생각이다. 

 

아무튼 접근법이 중요했다... 괜히 엄한 api살펴보다가 시간 날렸다. 

 

 

columnNames 사용법 

 

JSTL SQL 태그

DataSource 를 이용해서 SQL을 처리하는 sql 태그는 다음과 같은 것들이 있다. 기능 태그 prefix DataSource 설정 SetDataSource sql SQL query (dateParam, param) , update (dateParam, param) , transaction s..

bluebluy.tistory.com

 

JSTL sql

  JSTL sql은 DataSource를 이용해서 SQL을 처리하는 작업 등에 사용된다.   sql 태그 라이브러리를 사용하려면 JSP 페이지에 다음과 같이 <%@ taglib> 디렉티브를 작성해야 한다. <%@ taglib prefix="sql" ur..

krids.tistory.com

 

 

rows 사용법 

java.ihoney.pe.kr/44

 

EL과 JSTL

<%@ page~ %> <%@ include file %> <%@ taglib %> JSTL 소개 <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/cone" %> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %> <%..

java.ihoney.pe.kr

 

반응형