/*
* 개요 : 수정용 게시물 리턴
* 작성일 : 2005-08-13
* 작성자 : 김길재
* 수정자 :
*/
public BoardVO update_view( String board_code ,
String board_no ,
String board_grade ,
String write_date )
{
BoardVO board = new BoardVO();
try
{
con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
String sql = " SELECT BOARD_CODE , ";
sql += " BOARD_NO , ";
sql += " ( SUBSTR( WRITE_DATE , 1 , 4 ) || '년' || SUBSTR( WRITE_DATE , 6 , 2 ) || '월' || SUBSTR( WRITE_DATE , 9 , 2 ) || '일' ) AS SHORT_WRITE_DATE , ";
sql += " WRITE_DATE , ";
sql += " TITLE , ";
sql += " HIT , ";
sql += " CONTENT_TYPE , ";
sql += " CONTENT , ";
sql += " FILE_NAME , ";
sql += " MEMBER_ID ";
sql += " FROM BOARD ";
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.setInt( 2 , Integer.parseInt( board_no ) );
pstmt.setInt( 3 , Integer.parseInt( board_grade ) );
pstmt.setString( 4 , write_date );
rs = pstmt.executeQuery();
while(rs.next())
{
board.setBoard_code( rs.getString( "BOARD_CODE" ) );
board.setBoard_no( Integer.toString( rs.getInt( "BOARD_NO" ) ) );
board.setShort_write_date( rs.getString( "SHORT_WRITE_DATE" ) );
board.setWrite_date( rs.getString( "WRITE_DATE" ) );
board.setTitle( rs.getString( "TITLE" ) );
board.setHit( Integer.toString( rs.getInt( "HIT" ) ) );
board.setContent_type( rs.getString( "CONTENT_TYPE" ) );
board.setFile_name ( rs.getString( "FILE_NAME" ) );
board.setMember_id( rs.getString( "MEMBER_ID" ) );
//CLOB읽어오기
StringBuffer sbuf = new StringBuffer();
Reader reader = rs.getCharacterStream( "CONTENT" );
char[] buffer = new char[ 1024 ];
int read;
while( ( read = reader.read( buffer , 0 , 1024 ) ) != -1 )
{
sbuf.append( buffer, 0 , read );
}
reader.close();
String temp_content = sbuf.toString();
if( rs.getString( "CONTENT_TYPE" ).equals( "text") )
temp_content = temp_content.replaceAll( "<br>" , "\n");
board.setContent( temp_content );
}
con.commit();
}
catch (Exception e)
{
try
{
con.rollback();
}
catch( Exception e1 )
{}
KKJLog.info( "//////////////////////////////////////////////" );
KKJLog.info( "view() 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 board;
}
/*
* 개요 : 글쓰기
* 작성일 : 2005-08-12
* 작성자 : 김길재
* 수정자 :
*/
public String insert( String board_code ,
String title ,
String content_type ,
String content ,
FormFile file_name ,
String member_id )
{
String file = "";
int max_no = 0;
//해당 게시판의 최대 게시물 번호를 셀렉스한다.
max_no = max_no( board_code ) + 1;
try
{
con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
con.setAutoCommit(false);
//파일 처리
//파일이 있으면 (board_code)_(board_no).확장자로 입력한다.
if( file_name != null && !file_name.getFileName().equals( "" ) )
{
file = board_code + max_no + Util.getExtension( file_name );
FileUploadUtil.FileUpload( file_name , constants.getFILE_PATH() + file );
KKJLog.info( "file = " + file );
}
else
{
file = "no_file";
}
sql = " INSERT INTO BOARD( BOARD_CODE , ";
sql += " BOARD_NO , ";
sql += " BOARD_GRADE , ";
sql += " WRITE_DATE , ";
sql += " TITLE , ";
sql += " HIT , ";
sql += " CONTENT_TYPE , ";
sql += " CONTENT , ";
sql += " FILE_NAME , ";
sql += " MEMBER_ID ) ";
sql += " VALUES( ? , ";
sql += " ? , ";
sql += " ? , ";
sql += " TO_CHAR( SYSDATE , 'YYYY/MM/DD HH24:MI:SS' ) , ";
sql += " ? , ";
sql += " 0 , ";
sql += " ? , ";
sql += " EMPTY_CLOB() , ";
sql += " ? , ";
sql += " ? ) ";
pstmt = con.prepareStatement(sql);
pstmt.setString( 1 , board_code );
pstmt.setInt( 2 , max_no );
pstmt.setInt( 3 , 1 );
pstmt.setString( 4 , Util.uni2ksc( title ) );
pstmt.setString( 5 , content_type );
pstmt.setString( 6 , file );
pstmt.setString( 7 , member_id );
pstmt.executeUpdate();
//CLOB Content 입력
sql = " SELECT CONTENT ";
sql += " FROM BOARD ";
sql += " WHERE BOARD_NO = ? ";
sql += " AND BOARD_CODE = ? FOR UPDATE";
pstmt = con.prepareStatement(sql);
pstmt.setInt( 1 , max_no );
pstmt.setString( 2 , board_code );
rs = pstmt.executeQuery();
if( rs.next() )
{
CLOB clob = ( ( OracleResultSet ) rs ).getCLOB( 1 );
Writer write = clob.getCharacterOutputStream();
Reader src = null;
if( content_type.equals( "text" ) )
{
src = new CharArrayReader( Util.lineBreak( Util.uni2ksc( content ) ).toCharArray() );
}
else if( content_type.equals( "html" ) )
{
src = new CharArrayReader( Util.uni2ksc( content ).toCharArray() );
}
char[] buffer = new char[ 1024 ];
int read = 0;
while( ( read = src.read( buffer , 0 , 1024 ) ) != -1 )
{
write.write( buffer , 0 , read );
}
src.close();
write.close();
}
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-13
* 작성자 : 김길재
* 수정자 :
*/
public BoardVO update_view( String board_code ,
String board_no ,
String board_grade ,
String write_date )
{
BoardVO board = new BoardVO();
try
{
con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
String sql = " SELECT BOARD_CODE , ";
sql += " BOARD_NO , ";
sql += " ( SUBSTR( WRITE_DATE , 1 , 4 ) || '년' || SUBSTR( WRITE_DATE , 6 , 2 ) || '월' || SUBSTR( WRITE_DATE , 9 , 2 ) || '일' ) AS SHORT_WRITE_DATE , ";
sql += " WRITE_DATE , ";
sql += " TITLE , ";
sql += " HIT , ";
sql += " CONTENT_TYPE , ";
sql += " CONTENT , ";
sql += " FILE_NAME , ";
sql += " MEMBER_ID ";
sql += " FROM BOARD ";
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.setInt( 2 , Integer.parseInt( board_no ) );
pstmt.setInt( 3 , Integer.parseInt( board_grade ) );
pstmt.setString( 4 , write_date );
rs = pstmt.executeQuery();
while(rs.next())
{
board.setBoard_code( rs.getString( "BOARD_CODE" ) );
board.setBoard_no( Integer.toString( rs.getInt( "BOARD_NO" ) ) );
board.setShort_write_date( rs.getString( "SHORT_WRITE_DATE" ) );
board.setWrite_date( rs.getString( "WRITE_DATE" ) );
board.setTitle( rs.getString( "TITLE" ) );
board.setHit( Integer.toString( rs.getInt( "HIT" ) ) );
board.setContent_type( rs.getString( "CONTENT_TYPE" ) );
board.setFile_name ( rs.getString( "FILE_NAME" ) );
board.setMember_id( rs.getString( "MEMBER_ID" ) );
//CLOB읽어오기
StringBuffer sbuf = new StringBuffer();
Reader reader = rs.getCharacterStream( "CONTENT" );
char[] buffer = new char[ 1024 ];
int read;
while( ( read = reader.read( buffer , 0 , 1024 ) ) != -1 )
{
sbuf.append( buffer, 0 , read );
}
reader.close();
String temp_content = sbuf.toString();
if( rs.getString( "CONTENT_TYPE" ).equals( "text") )
temp_content = temp_content.replaceAll( "<br>" , "\n");
board.setContent( temp_content );
}
con.commit();
}
catch (Exception e)
{
try
{
con.rollback();
}
catch( Exception e1 )
{}
KKJLog.info( "//////////////////////////////////////////////" );
KKJLog.info( "view() 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 board;
}
/*
* 개요 : 글쓰기
* 작성일 : 2005-08-12
* 작성자 : 김길재
* 수정자 :
*/
public String insert( String board_code ,
String title ,
String content_type ,
String content ,
FormFile file_name ,
String member_id )
{
String file = "";
int max_no = 0;
//해당 게시판의 최대 게시물 번호를 셀렉스한다.
max_no = max_no( board_code ) + 1;
try
{
con = DriverManager.getConnection(ConnectionPoolManager.URL_PREFIX+"multiboard");
con.setAutoCommit(false);
//파일 처리
//파일이 있으면 (board_code)_(board_no).확장자로 입력한다.
if( file_name != null && !file_name.getFileName().equals( "" ) )
{
file = board_code + max_no + Util.getExtension( file_name );
FileUploadUtil.FileUpload( file_name , constants.getFILE_PATH() + file );
KKJLog.info( "file = " + file );
}
else
{
file = "no_file";
}
sql = " INSERT INTO BOARD( BOARD_CODE , ";
sql += " BOARD_NO , ";
sql += " BOARD_GRADE , ";
sql += " WRITE_DATE , ";
sql += " TITLE , ";
sql += " HIT , ";
sql += " CONTENT_TYPE , ";
sql += " CONTENT , ";
sql += " FILE_NAME , ";
sql += " MEMBER_ID ) ";
sql += " VALUES( ? , ";
sql += " ? , ";
sql += " ? , ";
sql += " TO_CHAR( SYSDATE , 'YYYY/MM/DD HH24:MI:SS' ) , ";
sql += " ? , ";
sql += " 0 , ";
sql += " ? , ";
sql += " EMPTY_CLOB() , ";
sql += " ? , ";
sql += " ? ) ";
pstmt = con.prepareStatement(sql);
pstmt.setString( 1 , board_code );
pstmt.setInt( 2 , max_no );
pstmt.setInt( 3 , 1 );
pstmt.setString( 4 , Util.uni2ksc( title ) );
pstmt.setString( 5 , content_type );
pstmt.setString( 6 , file );
pstmt.setString( 7 , member_id );
pstmt.executeUpdate();
//CLOB Content 입력
sql = " SELECT CONTENT ";
sql += " FROM BOARD ";
sql += " WHERE BOARD_NO = ? ";
sql += " AND BOARD_CODE = ? FOR UPDATE";
pstmt = con.prepareStatement(sql);
pstmt.setInt( 1 , max_no );
pstmt.setString( 2 , board_code );
rs = pstmt.executeQuery();
if( rs.next() )
{
CLOB clob = ( ( OracleResultSet ) rs ).getCLOB( 1 );
Writer write = clob.getCharacterOutputStream();
Reader src = null;
if( content_type.equals( "text" ) )
{
src = new CharArrayReader( Util.lineBreak( Util.uni2ksc( content ) ).toCharArray() );
}
else if( content_type.equals( "html" ) )
{
src = new CharArrayReader( Util.uni2ksc( content ).toCharArray() );
}
char[] buffer = new char[ 1024 ];
int read = 0;
while( ( read = src.read( buffer , 0 , 1024 ) ) != -1 )
{
write.write( buffer , 0 , read );
}
src.close();
write.close();
}
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 )
{
}
}
}
댓글 없음:
댓글 쓰기