[26] PdsDTO와 PdsDAO
파일명 : PdsDTO.java
------------------------------------------------------
package www.pds;
public class PdsDTO {
/** 글 번호 */
private int pdsno;
/** 글 쓴이 */
private String wname;
/** 제목 */
private String subject;
/** 글 등록일 */
private String regdate;
/** 비밀번호 */
private String passwd;
/** 조회수 */
private int readcnt;
/** 파일명 */
private String filename;
/** 파일 사이즈 */
private long filesize;
}
------------------------------------------------------
파일명 : PdsDAO.java
------------------------------------------------------
package www.pds;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import www.utility.DBClose;
public class PdsDAO {
/** 테이블 이름 */
private String table_name="tb_pds";
public PdsDAO() {
super();
// TODO Auto-generated constructor stub
}
/**
* 전체 글 목록 가져오기
* @return 검색된 파일 목록
*/
public List list(Connection con) throws SQLException{
PreparedStatement pstmt = null;
ResultSet rs = null;
StringBuffer sql = null;
List list = new ArrayList();
sql = new StringBuffer();
sql.append(" SELECT pdsno, wname, subject, regdate, readcnt,filename,filesize") ;
sql.append(" FROM " + table_name);
sql.append(" ORDER BY pdsno DESC");
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
while(rs.next() == true) {
PdsDTO dto = new PdsDTO();
dto.setPdsno(rs.getInt("pdsno"));
dto.setWname(rs.getString("wname"));
dto.setSubject(rs.getString("subject"));
dto.setRegdate(rs.getString("regdate"));
dto.setReadcnt(rs.getInt("readcnt"));
dto.setFilename(rs.getString("filename"));
dto.setFilesize(rs.getInt("filesize"));
list.add(dto);
}
DBClose.close(pstmt, rs);
return list;
}//end
public int recordCount(Connection con) throws SQLException{
PreparedStatement pstmt = null;
ResultSet rs = null;
StringBuffer sql = null;
int retVal = 0;
sql = new StringBuffer();
sql.append(" SELECT count(*) as cnt");
sql.append(" FROM " + table_name);
System.out.println("SQL: " + sql.toString());
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
if(rs.next()){ // 레코드가 있는 경우 첫번째 레코드로 이동
retVal = rs.getInt("cnt");
}
DBClose.close(pstmt, rs);
return retVal;
}
/**
* 레코드 추가하기
* @param dto 데이터 객체
* @return 추가 성공 - true, 추가실패 - false
*/
public int create(Connection con, PdsDTO dto) throws SQLException{
PreparedStatement pstmt = null;
ResultSet rs = null;
int retVal = 0;
StringBuffer sql = new StringBuffer();
sql.append(" INSERT INTO " + table_name);
sql.append(" (wname,subject,regdate,passwd,filename,filesize) ");
sql.append(" VALUES(?,?,now(),?,?,?)");
pstmt = con.prepareStatement(sql.toString());
pstmt.setString(1, dto.getWname());
pstmt.setString(2, dto.getSubject());
pstmt.setString(3, dto.getPasswd());
pstmt.setString(4, dto.getFilename());
pstmt.setLong(5, dto.getFilesize());
retVal = pstmt.executeUpdate();
DBClose.close(pstmt);
return retVal;
}
}
------------------------------------------------------
파일명 : PdsMgr.java
------------------------------------------------------
package www.pds;
import java.sql.Connection;
import java.util.List;
import www.pds.PdsDAO;
import www.pds.PdsDAO;
import www.utility.ConnectionMgr;
import www.utility.DBClose;
public class PdsMgr {
/** Connection Pool manager Class */
private ConnectionMgr dbconnect = null;
private static PdsDAO dao = null;
/**
* 기본 생성자
*/
public PdsMgr(){
if (dbconnect == null){
dbconnect = new ConnectionMgr();
}
System.out.println("dbconnect.hashCode(): " + dbconnect.hashCode());
if (dao == null){
dao = new PdsDAO();
}
}
/**
* DAO를 생성합니다.
* @return
*/
public synchronized PdsDAO getDAO(){
if (dao == null){
dao = new PdsDAO();
}
return dao;
}
/**
* 레코드 추가
* @param dto 추가할 레코드 보관 객체
* @return 성공 true, 실패 false
*/
public boolean create(PdsDTO dto){
Connection con = this.dbconnect.getConnection();
boolean retVal = false;
int cnt = 0;
try{
cnt = dao.create(con, dto);
if (cnt == 1){
retVal = true;
}
}catch(Exception e){
System.out.println(e.toString());
}finally{
DBClose.close(con);
}
return retVal;
}
/**
* 데이터 목록 가져오기
*/
public List list(){
Connection con = this.dbconnect.getConnection();
List list = null;
try{
list = dao.list(con);
}catch(Exception e){
System.out.println(e.toString());
}finally{
DBClose.close(con);
}
return list;
}
public int recordCount(){
Connection con = this.dbconnect.getConnection();
int retVal=0;
try{
retVal=getDAO().recordCount(con);
}catch(Exception e){
System.out.println(e.toString());
}finally{
DBClose.close(con);
}
return retVal;
}
}
-----------------------------------------------------------
------------------------------------------------------