[ 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
'· LANGUAGE > └ Java' 카테고리의 다른 글
[ Java /JDBC ] RowMapper / ResultSetExtractor의 차이점 (0) | 2024.01.28 |
---|---|
[ Java ] 삼항연산자(Ternary Operator) (0) | 2024.01.27 |
[ Java ] Collection - List (0) | 2024.01.25 |
[ Java / Database ] Java에서 DB에 데이터 삽입하기 (0) | 2024.01.24 |
[ Java / DB ] DB에 대상이 없는 경우 (0) | 2024.01.23 |