오늘 시도한 기능 구현은 게시판의 가장 기초적이면서 핵심적인 CRUD이다
아직 검색 기능까지는 구현하지 못했지만, 상품을 추가/수정/삭제할 수 있게 기능을 구현하였다
처음으로는, 원래 UI 테스트용으로 넣어놨던 상품들을 다 삭제하고
DB에 상품들을 추가한 후에 이클립스와 연동해서 GUI로 화면을 띄웠다
상품 재고를 가져오는 코드이다.
ProductsInventory는 DB의 모델이고 그 모델 안에
sql문으로 모든 것을 가져와서 ArrayList배열에 넣어준다
후에, 원하는 페이지(현재는 관리자 페이지)에서
모델 안에 들어 있는 값들을 하나씩 꺼내서
원하는 위치에 값을 넣어주는 형식으로 진행하였다
영화관의 재고관리 자체가 애매한 부분이 참 많아서
(팝콘과 음료의 재고를 개당으로 표현하기 애매)
완제로 나오는 스낵 부분과, 캄보들을 재고로 넣어주었는데
이런 식으로 재고관리를 진행하지는 않겠지만,
재고관리 자체가 눈으로 봐야 하는 경우가 많아서
프로그램상으로 편리함을 대체해주는 부분은 한계가 있다는 것을 느꼈다
다음으로 구현한 기능은 상품을 추가하는 기능이다
품목코드는 기본키로써 중복이 일어나면 안 되기 때문에, 상품명과 들어온 날짜를 넣어주기로 하였다
(편의상 시퀀스를 이용하면 됐지만, 실질적으로 어떤 제품인가를 파악하기 위해 이렇게 정하였다)
그리고 나머지 칼럼인 상품명과 수량 금액 등을 입력해주고 확인 버튼을 눌렀을 때
리스트 화면에 추가되는 것을 확인할 수 있었다
재고를 넣는 DB 연동 코드도
모델을 거쳐서 sql문으로 삽입된다
사용자가 GUI 화면의 텍스트 필드를 각각
입력하면, 그 입력한 것들을
getText로 가져와 모델에 넣어주고
모델에 넣은 값들을 다시 DB 연동으로 가져와
실제 DB에 Insert 해주는 방식으로
구현하였다
위 사진은 수정하는 GUI 화면이다
품목코드는 기본값이기 때문에, 수정하지 못하게 텍스트 필드를 setEnabled(false)로
지정하여서 수정하지 못하게 하였고,
나머지 칼럼들은 수정 가능하게끔 구현하였다
이 부분도 앞서 했던 방식들과
동일하게 진행하였고,
한 가지 다른 점은 기본키는 수정하지 못하기
때문에, 모델에도 상품코드 부분이
가장 하단으로 내려간 모델을 따로 만들어주고
진행하였다
sql문과 순서가 같아야 하기 때문에,
pi_code가 가장 하단으로 내려간 모델 필요
마지막으로 삭제 기능이다.
어떻게 보면 가장 쉬운 기능이었는데, 사용자가 삭제 버튼을 누른 패널의 PK값(= pi_code)을 가져와서
DB에 해당 상품을 삭제시켜주는 기능이다.
CRUD 모든 것들이 실행되었을 때,
GUI 화면상에도 바로 적용되어야 하는데, 이 부분은 해당 기능들을 실행하는 버튼을 클릭 시
dispose()로 리스트 프레임을 꺼준다음, 다시 새롭게 프레임을 띄어주는 (DB 다시 load) 방식으로 구현하였다
'Project > TeamProject' 카테고리의 다른 글
최종 팀 프로젝트 사전발표 (2) | 2021.09.10 |
---|---|
[팀플 - movie_kiosk] End (0) | 2021.08.24 |
[팀플 - movie_kiosk] 8th course (managerFram) (0) | 2021.08.11 |
[팀플 - movie_kiosk] ScrollPane 사용법 (0) | 2021.08.11 |
[팀플 - movie_kiosk] 7th course (스크롤 이슈 해결 및 디자인 수정) (0) | 2021.08.10 |