Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 로그인화면
- static
- 페이지 이동
- 자바빈즈
- session.setAttribute
- target
- session.removeAttribute
- 영감
- 동기부여
- 미래직장
- 버리자
- opener
- BEANS
- 향상된 for문
- 파일호출
- 페이지이동
- 동기 부여
- 팝업창
- 파일 호출
- javaBeans
- 데이터사이언스
- scanner
- 빈즈
- \
- Import
- "
- session.getAttribute
- ;
- iframe
- Alert
Archives
- Today
- Total
갈림길 이정표
[JSP] Bean으로 DB 연결 (feat. 향상된 for문) 본문
※ 주의! ApacheTomcat의 Dynamic Web Project에는 기본적으로 JDBC를 지원 안하기 때문에 WEB-INF > lib 폴더에 mariadb-java-client-1.3.6.jar 파일을 꼭 복사시켜 놔야 된다.

DB자료 데이터를 DTO class로 받은 후
DTO(각 멤버들)를 ArrayList에 담아 놓은 후
더보기
DTO (맵핑을 하기위한 그릇)
[SangpumDTO.java]
package pack2;
public class SangpumDTO {
private String code, sang, su, dan;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getSang() {
return sang;
}
public void setSang(String sang) {
this.sang = sang;
}
public String getSu() {
return su;
}
public void setSu(String su) {
this.su = su;
}
public String getDan() {
return dan;
}
public void setDan(String dan) {
this.dan = dan;
}
}
[ConnDbBean.java]
package pack2;
//lib에 [el-api,jsp-api,servlet-api] 복사함
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class ConnDbBean {
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public ConnDbBean() {
try { // 드라이버로딩
Class.forName("org.mariadb.jdbc.Driver");
} catch (Exception e) {
System.out.println("ConnDbBean err: " + e);
}
}
public ArrayList<SangpumDTO> getDataAll() {
ArrayList<SangpumDTO> list = new ArrayList<SangpumDTO>();
try {
// DB연결
conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "369369");
pstmt = conn.prepareStatement("SELECT * FROM sangdata");
rs = pstmt.executeQuery();
while(rs.next()){
SangpumDTO dto = new SangpumDTO();
dto.setCode(rs.getString("code"));
dto.setSang(rs.getString("sang"));
dto.setSu(rs.getString("su"));
dto.setDan(rs.getString("dan"));
list.add(dto); //DB를 DTO type(그냥 변수에 값부여)로 받아옴 → DTO를 list 로 받아옴(ArrayList type)
}
} catch (Exception e) {
System.out.println("getDataAll err: " + e);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception e2) {
}
}
return list;
}
}
다시 ArrayList를 DTO타입 형태로 불러옴
(위에는 for문을, 밑에는 향상된 for문을 쓴 결과 이다.)

[beansDB1.jsp]
<%@page import="pack2.SangpumDTO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="cdb" class="pack2.ConnDbBean"/> <%-- Singleton 패턴 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>* 상품자료(beans 사용) *</h2>
<table border='1'>
<tr><td>코드</td><td>품명</td><td>수량</td><td>단가</td></tr>
<%
ArrayList<SangpumDTO> list = cdb.getDataAll();
for(int i = 0; i < list.size(); i++){
SangpumDTO dto = (SangpumDTO)list.get(i); //list를 DTO타입으로 다시 불러옴 (대신 Casting 필요. 더 작은 개념이라서)
%>
<tr>
<%--<td><% out.print(dto.getCode()); %>--%>
<td><%=dto.getCode() %>
<td><%=dto.getSang() %>
<td><%=dto.getSu() %>
<td><%=dto.getDan() %>
</td>
<%
}
%>
</table>
<br>
<table border="1">
<tr><td>코드</td><td>품명</td><td>수량</td><td>단가</td></tr>
<%
for(SangpumDTO s:list){
%>
<tr>
<td><%=s.getCode() %>
<td><%=s.getSang() %>
<td><%=s.getSu() %>
<td><%=s.getDan() %>
</td>
<%
}
%>
</table>
</body>
</html>
향상된 for문 [Enhanced For Loop] (더 알아보기)
더보기
for ( declaration : expression ) {
// statement(s)
}
for ( String obj : array ) {
// statement(s)
}
for ( Class타입명 변수명 : array ) {
// statement(s)
}
array[0], array[1], array[2], ....가면서 i < array.size( )가 될 때까지
obj변수가 이용된 { }안의 모든 statement(s) 를 반복
'Programming Language > Servlet & JSP' 카테고리의 다른 글
[JSP] beans + dbcp[connection pooling] (0) | 2020.09.02 |
---|---|
[JSP] (problem) (0) | 2020.08.26 |
[JSP] (problem) Form Bean (0) | 2020.08.26 |
[JSP] 레코드 단위 처리 Bean (Form Bean) (0) | 2020.08.26 |
[JSP] Bean을 통한 값 전달 (0) | 2020.08.26 |
Comments