패키지
DAO 본문
package com.test;
import java.util.*;
import java.sql.*;
public class GuestBookDAO {
//회원수 출력 메소드 (관리자 로그인)
public int count(){
int result =0;
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//한 줄로 쓰기
String sql = String
.format("SELECT count(*) as count FROM membersListView ");
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
result = rs.getInt("count");
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
//회원 명단 출력 메소드 (관리자 로그인)
public ArrayList<Member> memberList(){
ArrayList<Member> result = new ArrayList<Member>();
//문제)
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 Member 객체에 저장 -> Member 객체를 컬렉션에 저장
//데이터베이스 연결 마무리
//결과 반환
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//한 줄로 쓰기
String sql = String
.format("SELECT sid, id, wdate, admin FROM membersListView ");
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String sid = rs.getString("sid");
String id = rs.getString("id");
String wdate = rs.getString("wdate");
String admin = rs.getString("admin");
Member m = new Member();
m.setSid(sid);
m.setId(id);
m.setWdate(wdate);
m.setAdmin(admin);
result.add(m);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
//문제 관리자 확인 쿼리 작성. 아이디, 패스워드(암호화), 관리자옵션
//관리자 로그인(확인) 메소드
public int adminLogin(String id, String pw){
int result =0;
//문제)
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//한 줄로 쓰기
String sql = String
.format("select count(*) \"count()\" from membersList where id= ? and pwd = encrypt(?, ?) and admin = 'Y'");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
pstmt.setString(3, id);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
result = rs.getInt("count()");
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result; //0 또는 1 반환.
}
//방명록 글건수 출력 메소드
public int guestBookCount(){
int result = 0;
//문제)
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//한 줄로 쓰기
String sql = String
.format("select count(*) \"count()\" FROM GUESTBOOK");
/*String sql = String
.format("SELECT COUNT(*) AS \"count\" FROM GUESTBOOK");
*/
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
result = rs.getInt("count()");
//result = rs.getInt("count");
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
//방명록 글목록 출력 메소드
public ArrayList<GuestBook> guestBookList(){
ArrayList<GuestBook> result = new ArrayList<GuestBook>();
//문제)
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 GuestBook에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
String sql = String.format("SELECT * FROM GUESTBOOKVIEW");
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String sid = rs.getString("sid");
String id = rs.getString("id");
String content = rs.getString("content");
String wdate = rs.getString("wdate");
GuestBook g = new GuestBook();
g.setSid(sid);
g.setId(id);
g.setContent(content);
g.setWdate(wdate);
result.add(g);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
//일반회원 로그인(확인) 메소드
public int memberLogin(String id, String pw){
int result =0 ;
//문제)
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//한 줄로 쓰기
String sql = String
.format("select count(*) \"count()\" from membersList where id= ? and pwd = encrypt(?, ?) and admin = 'N'");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
pstmt.setString(3, id);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
result = rs.getInt("count()");
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result; //0 또는 1
}
//방명록 글쓰기 메소드
public int guestBookAdd(GuestBook g){
int result = 0;
//문제)
//데이터베이스 연결
//Insert 쿼리 준비 및 실행. 데이터 바인딩 필요.(물음표 처리 -> 그걸 외부데이터와 처리)
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//바인딩에는 따옴표가 안들어간다
String sql = String.format("INSERT INTO guestBook(sid, id, content) VALUES(guestBookSeq.nextval, ?, ?)");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, g.getId());
pstmt.setString(2, g.getContent());
result = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
//아이디 중복 확인 쿼리. 아이디
//and password부분만 지움
public int idCheck(String id){
int result = 1; //초기값을 1로 설정할 것.
//데이터베이스 연결
//select 쿼리 준비 및 실행
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
//바인딩에는 따옴표가 안들어간다
String sql = String.format("SELECT COUNT(*) FROM membersList WHERE id = ?");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
result = rs.getInt("COUNT(*)");
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result; //1 또는 0 이 반환 된다.
}
//회원 가입 쿼리(아이디, 패스워드)
public int memberAdd(Member m){
int result = 0;
//데이터베이스 연결
//Insert 쿼리 준비 및 실행. 데이터 바인딩 필요.(물음표 처리 -> 그걸 외부데이터와 처리)
//바인딩 세개!!!
//결과를 변수(result)에 저장
//데이터베이스 연결 마무리
//결과 반환(return)
//물음표 세개
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = DBConn.getConnection();
String sql = String.format("INSERT INTO membersList (sid, id, pwd, admin) VALUES (membersListSeq.nextval, ? , ENCRYPT(?, ?), 'N')");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, m.getId());
pstmt.setString(2, m.getPwd());
pstmt.setString(3, m.getId());
result = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
DBConn.close();
}
return result;
}
}
'Server-Side > JDBC' 카테고리의 다른 글
Main문과 MenuAction (0) | 2015.04.24 |
---|---|
DBConn (0) | 2015.04.24 |
방명록(GuestBook, Member)_멤버변수 선언 (2) | 2015.04.24 |