Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 페이징 처리
- 특정 포트 연결 해제
- local 저장소 개별 관리
- 면접
- 저장소 개별 관리
- xml 에러
- xml 406
- svn e175002
- 도메인 웹호스팅 다를 경우
- 도메인 웹호스팅 다를 때
- 저장소 개별
- json xml 에러
- 이클립스 중단
- 특정 포트 해제
- vmware 로컬 웹서버 접근
- 이클립스 svn 설치
- json 에러
- 도메인 서버
- e175002
- 특정 포트 보기
- 이클립스 로딩
- centos jeus 웹서버 접근
- 도메인 웹호스팅
- 도메인 웹호스팅 다름
- 특정 포트 확인
- VMware 네트워크 이상
- github
- 저장소 관리
- 공공api xml
- 406호출
Archives
- Today
- Total
LIFE & IT
게시판 DAO(Data Access Object) 부분 본문
간단한 게시판 DAO 부분입니다.
효과적인 DAO 작성 법은 아니고 초보적 수준의 DAO 코드입니다.
차후 효과적인 방법으로 변경할 예정.
현재 코드는 JSP 게시판 포트폴리오에 적용됨.
1. 현재 시간 구하는 함수
// 현재 시간 구하는 함수
public String getDate() {
String SQL = "SELECT NOW()";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
rs = pstmt.executeQuery();
if(rs.next()) {
return rs.getString(1);
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
2. 게시글 번호 구하는 함수
- 게시글 작성 함수(3번)에 getNext() 함수를 이용해 게시글 번호(bbsID)를 넣어주기 위한 함수.
// 게시글 번호 구하는 함수
public int getNext() {
String SQL = "SELECT bbsID FROM BBS ORDER BY bbsID DESC";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
rs = pstmt.executeQuery();
if(rs.next()) {
return rs.getInt(1) + 1; //다음 게시물
}
return 1; // 첫 번째 게시물
} catch (Exception e) {
e.printStackTrace();
}
return -1; // 데이터 베이스 오류
}
- return 1 = 첫 번째 게시물을 말한다.
- return -1 = 데이터 베이스 오류를 말한다.
- return rs.getInt(1) + 1 = rs.next() 결과 값이 1개 이상이면 결과 값이 +1 을 더해서 다음 게시글 번호를 만든다.
▷ 주의 : 검색 건 수가 100만건 이상이면 정렬로 인한 문제가 발생할 수 있기 때문에 getNext()자체를 다른 함수에 넣어사용하는 방법은 좋은 방법이 아닐 것으로 생각된다. 게시글 작성 함수(3번)에 getNext() 함수 대신 데이터베이스의 시퀀스인 nextval 을 사용하는 것이 좋을 것 같다.
3. 게시글 작성 함수
// 게시글 작성 함수
public int write(String bbsTitle, String userID, String bbsContent) {
String SQL = "INSERT INTO BBS VALUES (?, ?, ?, ?, ?, ?)";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext());
pstmt.setString(2, bbsTitle);
pstmt.setString(3, userID);
pstmt.setString(4, getDate());
pstmt.setString(5, bbsContent);
pstmt.setInt(6, 1); // 게시글 삭제된 여부 <0:삭제o , 1:삭제x>
return pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1; // 데이터 베이스 오류
}
※ 시퀀스 참고: https://mine-it-record.tistory.com/61, https://mine-it-record.tistory.com/62