Web Programming/JSP

9. JSP DTO , DAO

유가엘 2020. 3. 24. 00:26

lesson10_JSP_DaoDto.zip
0.01MB

DTO(Data Transfer Object)

Data Transfer Object의 약자로, 계층간 데이터 교환을 위한 자바빈즈를 의미합니다.

이 객체는 데이터베이스 레코드의 데이를 맵핑하기 위해 만들어졌으며, 접근을 위한 Getter, Setter를 가지고 있습니다.

package lesson10_JSP_DaoDto.dto;

public class CountryDTO {
	private String COUNTRY_ID;
	private String COUNTRY_NAME;
	private String REGION_ID;
	
	public CountryDTO() {
		// TODO Auto-generated constructor stub
	}

	public CountryDTO(String cOUNTRY_ID, String cOUNTRY_NAME, String rEGION_ID) {
		super();
		COUNTRY_ID = cOUNTRY_ID;
		COUNTRY_NAME = cOUNTRY_NAME;
		REGION_ID = rEGION_ID;
	}

	public String getCOUNTRY_ID() {
		return COUNTRY_ID;
	}

	public void setCOUNTRY_ID(String cOUNTRY_ID) {
		COUNTRY_ID = cOUNTRY_ID;
	}

	public String getCOUNTRY_NAME() {
		return COUNTRY_NAME;
	}

	public void setCOUNTRY_NAME(String cOUNTRY_NAME) {
		COUNTRY_NAME = cOUNTRY_NAME;
	}

	public String getREGION_ID() {
		return REGION_ID;
	}

	public void setREGION_ID(String rEGION_ID) {
		REGION_ID = rEGION_ID;
	}
	
	
}

 

DAO(Data Access Object)

Data Access Object의 약자로, 데이터의 조회 및 조작하는 기능[ CRUD(생성, 읽기, 갱신, 삭제) ]전담하는 객체입니다.

데이터베이스에 접근하기 위한 로직과 비즈니스 로직을 분리하여 코드의 간결화 및 모듈화, 유지보수 등의 장점을 가질 수 있습니다.

package lesson10_JSP_DaoDto.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import lesson10_JSP_DaoDto.dto.CountryDTO;

public class CountryDAO {

	public ArrayList<CountryDTO> select() {
		
		ArrayList<CountryDTO>list = new ArrayList<CountryDTO>();
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet result = null;
		DataSource dataSource;
		
		try {
			Context context = new InitialContext();
			dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/Oracle11g");
			con = dataSource.getConnection();
			String sql = "SELECT * FROM COUNTRIES";
			pstmt = con.prepareStatement(sql);
			result = pstmt.executeQuery(sql);

			while (result.next()) {
				String COUNTRY_ID = result.getString("COUNTRY_ID");
				String COUNTRY_NAME = result.getString("COUNTRY_NAME");
				String REGION_ID = result.getString("REGION_ID");
				
				CountryDTO countryDTO = new CountryDTO(COUNTRY_ID, COUNTRY_NAME, REGION_ID);
				list.add(countryDTO);
				
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				result.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		return list;
	}
	
}