본문 바로가기
네이버클라우드/JAVA 웹 프로그래밍

JAVA 44일차 (2023-07-24) 자바 프로그래밍_46. DBMS 도입하기_MySQLBoardDao_개인프로젝트 - 마트 관리 시스템

by prometedor 2023. 7. 24.
## 46. DBMS 도입하기

- DBMS 설치 및 사용법
- SQL 및 JDBC Driver 개념과 사용법
- 회원 및 게시판 테이블 정의 및 예제 데이터 입력 SQL 준비
- DBMS와 연동하여 작업하는 DAO 구현

 

ClientApp.java

ㄴ Create constructor 'MySQLBoardDao(Connection)' 선택하여 MySQLBoardDao 클래스에 생성자 만들어두기

=>

MySQLBoardDao.java

 

Board.java

ㄴ Board 클래스의 category 필드 추가

 

ㄴ category 필드의 getter/setter 추가

 

MySQLBoardDao.java

ㄴ MySQLMemberDao 클래스에서 insert 메서드 내용 복사해와서 수정하기

 

=>

ClientApp.java 실행

=>

 

BoardAddListenr.java

ㄴ category 필드 추가

 

BoardAddListenr.java

ㄴ 1 대신 this.category 로 변경하여 넘어오는 값을 받아서 설정

 

ClientApp.java

ㄴ category 를 이용해 분리하므로 boardDao 하나로 가능

 

BoardListListener.java

ㄴ category 필드 추가

 

 

MySQLBoardDao.java

ㄴ MySQLMemberDao 클래스에 있는 list 메서드 내용 복사해와서 수정하기

 

Board.java

ㄴ long 대신 java.sql.Timestamp 를 이용

 

ㄴ getter/setter 추가해주기(이전에 있던 해당 getter/setter 제거 후 추가)

 

MySQLBoardDao.java

ㄴ Member 로 이루어져있던 코드 모두 Board 로 변경

 

ClientApp.java

ㄴ 위와 같이 변경

 

MySQLBoardDao.java

ㄴ %tY-%5$tm-%5$td 대신 %s 이용 (Timestamp)

 

BoardListListener.java

ㄴ SimpleDateFormat 이용하여 yyyy-MM-dd 형식으로 만들기

 

BoardListListener.java

ㄴ SimpleDateFormat 의 format 메서드 이용

 

MySQLBoardDao.java

ㄴ category 필드 추가

 

MySQLBoardDao.java

ㄴ category 필드 이용

 

MySQLBoardDao.java

ㄴ '%d' 대신 %d 이용

 

MySQLBoardDao.java

ㄴ sql 문 수정

 

ClientApp.java

ㄴ MySQLBoardDao 이용

 

ClientApp.java

ㄴ 다시 생성자에 category 를 넘겨주지 않도록 변경

 

BoardAddListener.java

ㄴ 다시 category 모두 제거

 

BoardListListener.java

ㄴ 다시 category 모두 제거

 

MySQLBoardDao.java

ㄴ content 추가

 

MySQLBoardDao.java

ㄴ해당 코드 추가

 

MySQLBoardDao.java

ㄴ list 는 findBy 에서는 필요 없으므로 제거

 

MySQLBoardDao.java

ㄴ while => if 로 변경

ㄴ 객체 b 를 리턴하도록 함

ㄴ rs 에 넘어오는 값이 없으면 null 리턴

 

ClientApp.java 실행

ㄴ 잘 출력됨을 확인

 

MySQLBoardDao.java

ㄴ executeUpdate() 이용

ㄴ sql 문 변경

 

BoardUpdateListener.java

ㄴ 해당 위치로 이동시켜줌

 

BoardUpdateList.java

ㄴ 위와 같이 코드 변경

=>

ClientApp.java 실행

=>

 

MySQLBoardDao.java

ㄴ 조회수 증가를 위해 코드 추가

 

MySQLBoardDao.java

ㄴ MySQLMemberDao 클래스에서 delete 메서드의 내용을 복사해와서 수정

=>

ClientApp.java 실행

ㄴ 제대로 삭제됨을 확인

=> 하지만 현재, 비밀번호 확인을 하지 않고 있음

=> 비밀번호가 맞아야 삭제 가능하도록 구현해야함

 

BoardDao.java

ㄴ 넘겨주는 값을 no -> Board 객체로 변경해줌

 

 

MySQLBoardDao.java

ㄴ sql 문에 password 추가

 

BoardDeleteListener.java

ㄴ no 값이 아닌 Board 객체를 이용하여 삭제 

=>

ClientApp.java 실행

ㄴ 암호를 맞게 입력할 경우에만 삭제 가능하도록 변경됨을 테스트하여 확인