복습
JSTL에서 sql문 사용 본문
1. jstl core와 sql 태그라이브러리를 설정한다
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2. db와 연결하기
<sql:setDataSource dataSource="jdbc/jsp" var="dataSource" scope="application"/>
- setDataSource로 dataSource에 jdbc/jsp를 입력한다
- jdbc/jsp는 앞에서 sql문을 사용할 환경을 구축할 때 context.xml 파일에서 설정한 Resource의 name 값이다.
3. sql문 사용하기
<sql:query var="resultSet" dataSource="${dataSource }">
select * from jstlmember
</sql:query>
- select를 사용(결과값이 존재)하기 때문에 <sql:query>를 사용한다.
- var="resultSet"이므로 resultSet에 데이터가 입력된다.
- dataSource는 위에서 var="dataSource"로 dataSource라는 변수에 값을 넣었기 때문에 ${dataSource}를 입력한다.
- 사용할 sql문을 입력한다.
4. 받아온 데이터 출력하기
<table border="1">
<tr>
<c:forEach items="${resultSet.columnNames }" var="columnName"> <!-- sql문의 결과인 resultSet의 데이터를 가져옴 -->
<th>${columnName }</th>
</c:forEach>
<c:forEach items="${resultSet.rowsByIndex }" var="row">
<tr>
<c:forEach items="${row }" var="column">
<td>${column }</td>
</c:forEach>
</tr>
</c:forEach>
</table>
- resultSet에 담긴 데이터를 가져오는데 coloumnNames를 이용하여 열의 이름을 출력한다.
- resultSet에서 rowsByIndex 메서드를 이용하여 한 행의 데이터를 가져온다.
- 가져온 한 행의 데이터를 열로 쪼개서 하나씩 출력한다.(각각 id, passwd,name)
데이터를 삽입한 후 출력하기
<sql:setDataSource dataSource="jdbc/jsp" var="dataSource" scope="application"/>
<sql:update dataSource="${dataSource }">
insert into jstlmember values(?,?,?)
<sql:param value="<%=id %>"/>
<sql:param value="<%=passwd %>"/>
<sql:param value="<%=name %>"/>
</sql:update>
<c:import url="sql01.jsp"/>
- 위에서와 같이 dataSource를 지정해준다.
- select와 같이 결과가 있는 sql문이 아니므로 <sql:update>를 사용한다.
- sql문을 사용한다. ?를 사용하여 아래에서 값을 대입할 수 있다.
- <sql:param>을 이용하여 차례대로 값을 넣어준다.
- insert문을 실행하여 데이터가 DB에 삽입되었고, 위에서 작성한 sql01.jsp파일(select)을 불러와서 데이터를 확인한다.
'서버프로그램' 카테고리의 다른 글
서블릿(Servlet) 사용하기 2 (0) | 2020.06.24 |
---|---|
Servlet(서블릿) 사용하기 (0) | 2020.06.23 |
JSTL 사용하기 (0) | 2020.06.23 |
게시판 페이징하기 - sql문 rownum 사용 (0) | 2020.06.22 |
세션(Session), 정규표현식(정규식) (0) | 2020.06.18 |