반응형
이전에 사용한 프로젝트를 이용하여
JSP 화면에 오라클 DB의 값을 출력하는 예제를 구현해 보겠습니다.
프로젝트 구성
프로젝트 구성 필요하시면 위의 글을 참조하시기 바랍니다.
사용한 프로젝트의 구조는 위와 같습니다.
데이터 Flow
- 사용자가 특정 URL로 접근
- Web.xml에 의해 MainDataController 접근
- MainDataController -> DataGetDao로 이동
오라클 DB에 접속하여 데이터를 SELECT. - SELECT 된 데이터는 DataVO 형태로 저장
- 최종 MainDataController는 select_view.jsp를 호출하면서
결과 파라미터를 같이 전달.
소스 코드
DataGetDao.java
package com.company;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class DataGetDao {
public List<DataVo> getDataByNum(int deptno) throws Exception {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
List<DataVo> vo_list = new ArrayList<>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String query_sql = "select empno as personal_num ";
query_sql += " , ename as personal_name ";
query_sql += " , sal as personal_sal ";
query_sql += " from emp ";
query_sql += " where deptno = ? ";
try {
Class.forName(driver);
//오라클 DB Driver(oracle.jdbc.driver.OracleDriver)를 메모리에 적재
conn = DriverManager.getConnection(url,"myid","xptmxm1234");
//오라클 DB에 접속하기 위한 접속 경로와 ID, PW
pstmt = conn.prepareStatement(query_sql);
//쿼리 실행을 위한 prepareStatement생성
pstmt.setInt(1, deptno);
//쿼리내 ?에 할당하는 변수
rs=pstmt.executeQuery();
//쿼리를 실행하여 결과를 rs에 리턴
while(rs.next()){
//결과 값을 while문을 이용하여 1개의 ROW형태로 추출하여 VO객채에 저장
DataVo vo = new DataVo();
vo.setpersonal_num(rs.getString(1));
vo.setpersonal_name(rs.getString(2));
vo.setpersonal_sal(rs.getString(3));
vo_list.add(vo); //저장된 VO객체 값을 리스트에 저장
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(rs != null)rs.close();
if(pstmt != null)pstmt.close();
if(conn != null)conn.close();
}
return vo_list;
}
}
DataVo.java
package com.company;
public class DataVo {
private String personal_num;
private String personal_name;
private String personal_sal;
public String getpersonal_num() {
return personal_num;
}
public void setpersonal_num(String personal_num) {
this.personal_num = personal_num;
}
public String getpersonal_name() {
return personal_name;
}
public void setpersonal_name(String personal_name) {
this.personal_name = personal_name;
}
public String getpersonal_sal() {
return personal_sal;
}
public void setpersonal_sal(String personal_sal) {
this.personal_sal = personal_sal;
}
}
MainDataController.java
package com.company;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/getPersonal")
public class MainDataController extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DataGetDao dao = new DataGetDao();
List<DataVo> dvo = null;
try {
dvo = dao.getDataByNum(20);
} catch (Exception e) {
e.printStackTrace();
}
request.setAttribute("data_list", dvo);
RequestDispatcher rd = request.getRequestDispatcher("/select_view.jsp");
rd.forward(request, response);
}
}
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>ExamProject</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MainDataController</servlet-name>
<servlet-class>com.company.MainDataController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainDataController</servlet-name>
<url-pattern>/getPersonal.do</url-pattern>
</servlet-mapping>
</web-app>
select_view.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<%@page import="com.company.DataVo" %>
<%@page import="java.util.*" %>
<meta charset="EUC-KR">
<title>EMP TEST</title>
</head>
<body>
<% ArrayList<DataVo> list = null;
String html_tag = "";
try{
list = (ArrayList<DataVo>)request.getAttribute("data_list");
html_tag += "<table style='border:solid 1px; width:500px;'>";
html_tag += "<tr><td>사번</td><td>이름</td><td>연봉</td></tr>";
for(int i=0; i<list.size(); i++){
html_tag += "<tr>";
html_tag += "<td>"+list.get(i).getpersonal_num()+"</td>";
html_tag += "<td>"+list.get(i).getpersonal_name()+"</td>";
html_tag += "<td>"+list.get(i).getpersonal_sal()+"</td>";
html_tag += "</tr>";
}
html_tag += "</table>";
}catch(Exception e){
e.printStackTrace();
}
%>
<%=html_tag %>
</body>
</html>
소스 결과
Web프로젝트내 Java와 Jsp를 이용.
오라클을 연동하여 DB 내 데이터를 Select 하는 예제의 결과값 입니다.
소스는 Jsp에서 결과값을 html 이용하여 다양하게 출력할 수 있습니다.
반응형
'Dev > WEB, JSP' 카테고리의 다른 글
ajax 예제 소스 및 사용법 (json 데이터 사용) (0) | 2022.12.20 |
---|---|
JSP에서 List ArrayList 파라미터 가져와 사용하기 (0) | 2022.11.30 |
자식 컨테이너를 시작 중 실패했습니다. 톰캣 에러 해결법 (0) | 2022.11.27 |
JSP 태그 종류 및 사용 예제 (0) | 2022.11.24 |
tomcat version 8.5 only supports j2ee 1.2 1.3 1.4 and java ee 5 6 and 7 web modules 톰캣 에러 해결법 (0) | 2022.11.17 |