2013년 8월 11일 일요일

MemoDAO.java파일 수정본1입니다.

package board.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.bitmechanic.sql.ConnectionPoolManager;

import multiboard.Util;
import multiboard.KKJLog;


public class MemoDAO
{
        Connection con=null;
    PreparedStatement pstmt=null;
    ResultSet rs = null;
   
    String sql = "";
       
    /*
    *                개요                :  꼬릿말  리스트
    *                작성일            :        2005-08-15       
    *                작성자        :        김길재
    *                수정자        :
    */
    public List list( String board_code ,
                              String board_no ,
                                  String board_grade ,
                                  String write_date )
    {
            List memoList = new ArrayList();
       
        try
                {
                con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
         
                sql  = "  SELECT BOARD_CODE , ";
            sql += "          BOARD_NO , ";
            sql += "          BOARD_GRADE , ";
            sql += "          WRITE_DATE , ";
            sql += "          MEMO_NO , ";
            sql += "          MEMBER_ID , ";
            sql += "          MEMO , ";
            sql += "          MEMO_TIME ";
            sql += "    FROM MEMO ";
            sql += "    WHERE BOARD_CODE = ? ";;
            sql += "      AND BOARD_NO = ? ";;
            sql += "      AND BOARD_GRADE = ? ";;
            sql += "      AND WRITE_DATE = ? ";;
            sql += " ORDER BY MEMO_NO DESC ";
           
            pstmt = con.prepareStatement(sql);
           
            pstmt.setString( 1 , board_code );
            pstmt.setInt( 2 , Integer.parseInt( board_no ) );
            pstmt.setInt( 3 , Integer.parseInt( board_grade ) );
            pstmt.setString( 4 , write_date );
           
            rs = pstmt.executeQuery();

            while(rs.next())
            { 
                MemoVO memo = new MemoVO();
                    memo.setBoard_code( rs.getString( "BOARD_CODE" ) );
                    memo.setBoard_no( Integer.toString( rs.getInt( "BOARD_NO" ) ) );
                    memo.setBoard_grade( Integer.toString( rs.getInt( "BOARD_GRADE" ) ) );
                    memo.setWrite_date( rs.getString( "WRITE_DATE" ) );
                    memo.setMemo_no( Integer.toString( rs.getInt( "MEMO_NO" ) ) );
                    memo.setMember_id( rs.getString( "MEMBER_ID" ) );
                    memo.setMemo( rs.getString( "MEMO" ) );
                    memo.setMemo_time( rs.getString( "MEMO_TIME" ) );
                    memoList.add( memo );
            }
            con.commit();
        }
        catch (Exception e)
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "list Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return null;
        }
        finally
        {
                try
                {

                        if ( rs != null )
                                rs.close();
                        if ( pstmt != null )
                                pstmt.close();
                        if ( con != null )
                                con.close();
                }
                catch ( Exception ignore )
                {
                }
        }

        return memoList;
   
        }
   
    /*
    *                개요                :  꼬릿말 리턴
    *                작성일            :        2005-08-15       
    *                작성자        :        김길재
    *                수정자        :
    */
    public MemoVO view( String board_code ,
                                String board_no ,
                                    String board_grade ,
                                    String write_date ,
                                                String memo_no )
    {
            MemoVO memo = new MemoVO();
       
        try
                {
                con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
         
                sql  = "  SELECT BOARD_CODE , ";
            sql += "          BOARD_NO , ";
            sql += "          BOARD_GRADE , ";
            sql += "          WRITE_DATE , ";
            sql += "          MEMO_NO , ";
            sql += "          MEMBER_ID , ";
            sql += "          MEMO , ";
            sql += "          MEMO_TIME ";
            sql += "    FROM MEMO ";
            sql += "    WHERE BOARD_CODE = ? ";
            sql += "      AND BOARD_NO = ? ";
            sql += "      AND BOARD_GRADE = ? ";
            sql += "      AND WRITE_DATE = ? ";
            sql += "      AND MEMO_NO = ? ";
            sql += " ORDER BY MEMO_NO DESC ";
           
            pstmt = con.prepareStatement(sql);
           
            pstmt.setString( 1 , board_code );
            pstmt.setInt( 2 , Integer.parseInt( board_no ) );
            pstmt.setInt( 3 , Integer.parseInt( board_grade ) );
            pstmt.setString( 4 , write_date );
            pstmt.setInt( 5 , Integer.parseInt( memo_no ) );
           
            rs = pstmt.executeQuery();

            while(rs.next())
            { 
                    memo.setBoard_code( rs.getString( "BOARD_CODE" ) );
                    memo.setBoard_no( Integer.toString( rs.getInt( "BOARD_NO" ) ) );
                    memo.setBoard_grade( Integer.toString( rs.getInt( "BOARD_GRADE" ) ) );
                    memo.setWrite_date( rs.getString( "WRITE_DATE" ) );
                    memo.setMemo_no( Integer.toString( rs.getInt( "MEMO_NO" ) ) );
                    memo.setMember_id( rs.getString( "MEMBER_ID" ) );
                    memo.setMemo( rs.getString( "MEMO" ) );
                    memo.setMemo_time( rs.getString( "MEMO_TIME" ) );
            }
            con.commit();
        }
        catch (Exception e)
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "list Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return null;
        }
        finally
        {
                try
                {

                        if ( rs != null )
                                rs.close();
                        if ( pstmt != null )
                                pstmt.close();
                        if ( con != null )
                                con.close();
                }
                catch ( Exception ignore )
                {
                }
        }

        return memo;
   
        }   
   
    /*
    *                개요                :  꼬릿말 쓰기
    *                작성일            :        2005-08-15       
    *                작성자        :        김길재
    *                수정자        :
    */
    public String insert( String board_code ,
                                  String board_no ,
                                  String board_grade ,
                                  String write_date ,
                                  String member_id ,
                                  String memo )
    {
            int max_no = 0;
            //해당 게시물의 최대 꼬릿말 번호를 셀렉트.
            max_no = max_no( board_code ,
                                    board_no ,
                                        board_grade ,
                                        write_date ) + 1;
           
            try
        {
                        con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
                        con.setAutoCommit(false);
                       
                        sql =  " INSERT INTO MEMO( BOARD_CODE , ";
                        sql += "                  BOARD_NO , ";
                        sql += "                  BOARD_GRADE , ";
                        sql += "                  WRITE_DATE , ";
                        sql += "                  MEMO_NO , ";
                        sql += "                  MEMBER_ID , ";
                        sql += "                  MEMO , ";
                        sql += "                  MEMO_TIME ) ";
                        sql += "            VALUES( ? , ";
                        sql += "                    ? , ";
                        sql += "                    ? , ";
                        sql += "                    ? , ";
                        sql += "                    ? , ";
                        sql += "                    ? , ";
                        sql += "                    ? , ";
                        sql += "                    TO_CHAR( SYSDATE , 'YYYY/MM/DD' ) ) ";
               
                        pstmt = con.prepareStatement(sql);
           
                        pstmt.setString( 1 , board_code );
                        pstmt.setString( 2 , board_no );
                        pstmt.setString( 3 , board_grade );
                        pstmt.setString( 4 , write_date );
                        pstmt.setInt( 5 , max_no );
                        pstmt.setString( 6 , member_id );
                        pstmt.setString( 7 , Util.uni2ksc( memo ) );
           
            pstmt.executeUpdate();

            con.commit();
               
                        return "success";
        }
                catch( Exception e )
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "insert Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return "fail";
                }
        finally
        {
            try
            {
                    if ( rs != null )
                            rs.close();
                if ( pstmt != null )
                        pstmt.close();
                if ( con != null )
                        con.close();
            }
            catch ( Exception ignore )
            {
            }
   
        }
    } 



    /* 
    *                개요                :  꼬릿말 수정
    *                작성일            :        2005-08-15       
    *                작성자        :        김길재
    *                수정자        :
    */
    public String update( String board_code ,
                                  String board_no ,
                                  String board_grade ,
                                  String write_date ,
                                                  String memo_no ,
                                  String memo )
    {
            try
        {
                        con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
                        con.setAutoCommit(false);
                       
                        sql =  " UPDATE MEMO SET MEMO = ? ";
                        sql += "          WHERE BOARD_CODE = ? ";
                        sql += "            AND BOARD_NO = ? ";
                        sql += "            AND BOARD_GRADE = ? ";
                        sql += "            AND WRITE_DATE = ? ";
                        sql += "            AND MEMO_NO = ? ";
                       
                       
               
                        pstmt = con.prepareStatement(sql);
           
                        pstmt.setString( 1 , memo );
                        pstmt.setString( 2 , board_code );
                        pstmt.setInt( 3 , Integer.parseInt( board_no ) );
                        pstmt.setInt( 4 , Integer.parseInt( board_grade ) );
                        pstmt.setString( 5 , write_date );
                        pstmt.setInt( 6 , Integer.parseInt( memo_no ) );
                       
            pstmt.executeUpdate();

            con.commit();
               
                        return "success";
        }
                catch( Exception e )
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "insert Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return "fail";
                }
        finally
        {
            try
            {
                    if ( rs != null )
                            rs.close();
                if ( pstmt != null )
                        pstmt.close();
                if ( con != null )
                        con.close();
            }
            catch ( Exception ignore )
            {
            }
   
        }
    }
   
    /*
    *                개요                :  꼬릿말 삭제
    *                작성일            :        2005-08-15       
    *                작성자        :        김길재
    *                수정자        :
    */
    public String delete( String board_code ,
                                  String board_no ,
                                  String board_grade ,
                                  String write_date ,
                                                  String memo_no )
    {
            try
        {
                        con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
                        con.setAutoCommit(false);
                       
                        sql =  " DELETE FROM MEMO ";
                        sql += "      WHERE BOARD_CODE = ? ";
                        sql += "        AND BOARD_NO = ? ";
                        sql += "        AND BOARD_GRADE = ? ";
                        sql += "        AND WRITE_DATE = ? ";
                        sql += "        AND MEMO_NO = ? ";
                       
                       
               
                        pstmt = con.prepareStatement(sql);
           
                        pstmt.setString( 1 , board_code );
                        pstmt.setInt( 2 , Integer.parseInt( board_no ) );
                        pstmt.setInt( 3 , Integer.parseInt( board_grade ) );
                        pstmt.setString( 4 , write_date );
                        pstmt.setInt( 5 , Integer.parseInt( memo_no ) );
                       
            pstmt.executeUpdate();

            con.commit();
               
                        return "success";
        }
                catch( Exception e )
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "insert Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return "fail";
                }
        finally
        {
            try
            {
                    if ( rs != null )
                            rs.close();
                if ( pstmt != null )
                        pstmt.close();
                if ( con != null )
                        con.close();
            }
            catch ( Exception ignore )
            {
            }
   
        }
    }
       
    /*
    *                개요                :  게시물 꼬릿말 번호 최고값 리턴
    *                작성일            :        2005-08-15
    *                작성자        :        김길재
    *                수정자        :
    */
    public int max_no( String board_code ,
                      String board_no ,
                      String board_grade ,
                      String write_date )
    {
            int max_no = 0;
           
            try
        {
                        con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
                       
                        String sql = "  SELECT MAX( MEMO_NO )";
            sql +=      "    FROM MEMO ";
            sql +=      "    WHERE BOARD_CODE = ? ";
            sql +=      "      AND BOARD_NO = ? ";
            sql +=      "      AND BOARD_GRADE = ? ";
            sql +=      "      AND WRITE_DATE = ? ";
                         
            pstmt = con.prepareStatement(sql);
           
            pstmt.setString( 1 , board_code );
            pstmt.setString( 2 , board_no );
            pstmt.setString( 3 , board_grade );
            pstmt.setString( 4 , write_date );
           
            rs = pstmt.executeQuery();

            while(rs.next())
            { 
                    max_no = rs.getInt( 1 );
           
            }
            con.commit();
        }
        catch (Exception e)
                {
                try
                        {
                        con.rollback();
                        }
                catch( Exception e1 )
                        {}
                KKJLog.info( "//////////////////////////////////////////////" );
                KKJLog.info( "max_no Error : " + e.toString() );
                KKJLog.info( "//////////////////////////////////////////////" );
                return 0;
        }
        finally
        {
                try
                {

                        if ( rs != null )
                                rs.close();
                        if ( pstmt != null )
                                pstmt.close();
                        if ( con != null )
                                con.close();
                }
                catch ( Exception ignore )
                {
                }
        }

        return max_no;

    }
}

댓글 없음:

댓글 쓰기