[ Java / Database ] DTO 이해 실습

2024. 1. 26. 22:11· LANGUAGE/└ Java

환경 : Eclipse / DBeaver

 

 

[데이터베이스_ 테이블 생성]

create table menu(
menu_no number primary key,
menu_name_kor varchar2(60) not null,
menu_name_eng varchar2(60) not null,
menu_type varchar2(30) not null,--메뉴 종류
menu_price number default 0 not null check(menu_price >= 0)
);
create sequence menu_seq;

 

[데이터베이스_더미데이터 삽입]

-- Inserting dummy data into the menu table
INSERT INTO menu (menu_no, menu_name_kor, menu_name_eng, menu_type, menu_price)
VALUES (menu_seq.nextval, '김치찌개', 'Kimchi Stew', 'Main Course', 12000);

INSERT INTO menu (menu_no, menu_name_kor, menu_name_eng, menu_type, menu_price)
VALUES (menu_seq.nextval, '된장찌개', 'Soybean Paste Stew', 'Main Course', 10000);

INSERT INTO menu (menu_no, menu_name_kor, menu_name_eng, menu_type, menu_price)
VALUES (menu_seq.nextval, '불고기', 'Bulgogi', 'Main Course', 18000);

INSERT INTO menu (menu_no, menu_name_kor, menu_name_eng, menu_type, menu_price)
VALUES (menu_seq.nextval, '비빔밥', 'Bibimbap', 'Main Course', 15000);

INSERT INTO menu (menu_no, menu_name_kor, menu_name_eng, menu_type, menu_price)
VALUES (menu_seq.nextval, '만두', 'Dumplings', 'Appetizer', 8000);

 

[데이터베이스_저장 및 확인]

COMMIT;

SELECT * FROM menu;

[MenuDto.java]

package jdbc.select;

public class MenuDto {
	private int menuNo;
	private String menuNameKor;
	private String menuNameEng;
	private String menuType;
	private int menuPrice;
	
	public MenuDto2() {		// 기본 생성자
		super();
	}
	//Getter/Setter
	public int getMenuNo() {
		return menuNo;
	}
	public void setMenuNo(int menuNo) {
		this.menuNo = menuNo;
	}
	public String getMenuNameKor() {
		return menuNameKor;
	}
	public void setMenuNameKor(String menuNameKor) {
		this.menuNameKor = menuNameKor;
	}
	public String getMenuNameEng() {
		return menuNameEng;
	}
	public void setMenuNameEng(String menuNameEng) {
		this.menuNameEng = menuNameEng;
	}
	public String getMenuType() {
		return menuType;
	}
	public void setMenuType(String menuType) {
		this.menuType = menuType;
	}
	public int getMenuPrice() {
		return menuPrice;
	}
	public void setMenuPrice(int menuPrice) {
		this.menuPrice = menuPrice;
	}
}

 

 

[MenuMapper.java]

package jdbc.select;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

public class MenuMapper implements RowMapper<MenuDto>{	//RowMapper 상속 받기

	@Override
	public MenuDto mapRow(ResultSet rs, int idx) throws SQLException {
		MenuDto dto = new MenuDto();
		dto.setMenuNo(rs.getInt("menu_no"));
		dto.setMenuNameKor(rs.getString("menu_name_kor"));
		dto.setMenuNameEng(rs.getString("menu_name_eng"));
		dto.setMenuType(rs.getString("menu_type"));
		dto.setMenuPrice(rs.getInt("menu_price"));
		return dto;
	}
}

 

 

[ Cal.java ] - 모든 메뉴를 출력하고, 사용자에게 메뉴 하나를 입력받아 해당 메뉴의 가격을 출력해주는 코드

package jdbc.select;

import java.util.List;
import java.util.Scanner;

import org.springframework.jdbc.core.JdbcTemplate;

import jdbc.util.JdbcHelper;

public class Cal {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		JdbcTemplate jdbcTemplate = JdbcHelper.getJdbcTemplate();
		
		String sql = "select * from menu  order by menu_no asc";
		MenuMapper mapper = new MenuMapper();
		
		List<MenuDto> list = jdbcTemplate.query(sql, mapper);
		
		System.out.println("== 메뉴 목록 ==");
		for(MenuDto dto : list) {
			System.out.println(dto.getMenuNameEng() + " : " + dto.getMenuNameKor());
		}
		
		System.out.print("주문할 메뉴 입력 (한글) : ");
		String inputMenu = sc.nextLine();
		for(MenuDto dto : list) {
			if(dto.getMenuNameKor().equals(inputMenu)) {
				System.out.println(dto.getMenuNameKor()+" 메뉴는 " + dto.getMenuPrice()+"원 입니다. ");
			}
		}
		
	}
}

 

 

 

 

 

 

개인 공부 기록용입니다:)

728x90