## 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 실행
ㄴ 암호를 맞게 입력할 경우에만 삭제 가능하도록 변경됨을 테스트하여 확인