패키지

DAO 본문

Server-Side/JDBC

DAO

업단업업 2015. 4. 24. 15:45

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
Comments