본문 바로가기

Project/TeamProject

[팀플 - movie_kiosk] 1st course

반응형

[오늘의 목표]

1. 상품 테이블 생성

2. 상품 테이블에 정보 INSERT

3. 이클립스와 DB 연동

4. DB로 들어온 정보들로 GUI 상품 버튼 띄우기

<세부사항>

4-1 DB로부터 이미지파일경로 정보 받고, 그 정보들을 매개변수로 받는 make_img 함수를 만들어서 그 함수 안에서 입력받은 경로를 이용하여 이미지로 바꿔 리턴해준다

4-2 DB로부터 상품이름, 상품 가격의 정보를 받고, 그 정보들을 매개변수로 받는 p_text 함수를 만들어서 그 함수 안에서 HTML를 이용하여 두 매개변수를 합쳐주고 String타입으로 리턴해준다

4-3 (4-1, 4-2)를 매개변수로 받는 makeP_btn 함수를 만들어서 그 함수 안에서 이미지와 텍스트를 한 버튼에 붙여서 리턴해주는 JButton타입으로 리턴해준다

첫번째로, DB에서 상품 테이블을 만들기로 하였다

관리자 계정으로 oracle 계정을 하나 생성한 후, 권한을 부여하였고

그 계정으로 상품테이블 (products)을 만들고

그 안에, 사전조사해놓은 상품들을 각각 넣어주었다

* 아직은, 상품테이블에 타입별로 구분하려고 다 넣어놨는데, 추후 변경 가능

* PK는 중복되지 않는 값 상품코드로 설정하고 상품코드는 시퀀스로 자동 지정해놓음.

그다음으로는, DB와 eclipse를 연동하기 위해서

유명한 DBConnector인 Hikari를 이용해서 연동하기로 하였다

메인클래스는 잘 연동이 되었는지 확인하기 위해 작성하였었고,

다른 클래스에서는 getConnection 메서드를 이용하여 디비와 연결할 것이다.

이쪽 부분에서 오류를 만났었는데

setJdbcUrl 안에 있는 localhost 옆에 XE부분에서

디비를 생성했을 때 지정을 해주지 않아, 그 부분 오류 때문에 테이블이 자꾸만 없다고 오류가 발생했었다

이 부분에서, 주의해야 할 것 같다

<모델>

위 사진은 Products 모델인데,

디비 연동할 때 값을 가져오기 위해서 코드 구성

생성자로는 일단 모든 값을 가져오는 것과,

지금 필요한 각각의 메뉴판을 구성하기 위한 값들로 매개변수 나뉨

<디비에서 정보 가져오기>

DButil 클래스에 있는 getConnection 함수로 DB 정보 가져온 후,

while문 안에서 원하는 값들을 ArrayLsit에 넣은 후 그 배열 반환.

<함수 분리 : 간단 설명>

typeOfproduct 함수 : 모든 정보가 담겨있는 배열과, 상품 타입을 매개변수로 받고,

매개변수로 받은 타입과 일치하는 타입들만 배열에 넣어 리턴해준다

p_text 함수 : 상품 이름 배열과 상품 가격 배열을 매개변수로 입력받은 후에

HTML 코드를 섞어서 합친 후 배열에 넣어 리턴해준다

(GUI에서 줄 바꿈 기능이 안 먹히고 또한 나중에 css도 추가 가능함)

makeImageIconArray 함수 : 이미지 경로를 담은 String배열을 매개변수로 받고,

for-each 문을 활용해서 배열에 담긴 경로들로 이미지 아이콘을 만들고

그것들을 배열에 담아서 리턴해준다

btn_list 함수 : 위에서 만든 이미지 배열과 텍스트 배열을 매개변수로 받고,

JButton에 각각의 값을 넣어준 후에, 버튼들을 배열에 담고 리턴해준다

<Test 결과>

* 상단에 메뉴바들은 나중에 따로 패널을 만들어서 고정된 패널들만 있는 메인 패널을 구성

팝콘을 테스트로 하였는데, 만든 함수들을 활용해서 버튼 배열에 담기 성공

임시로 패널을 만든 후에, 버튼 배열의 첫 번째만 부착해봤고 gui로 성공적으로 나옴

반응형