/*
* 개요 : 답글쓰기
* 작성일 : 2005-08-15
* 작성자 : 김길재
* 수정자 :
*/
* 개요 : 답글쓰기
* 작성일 : 2005-08-15
* 작성자 : 김길재
* 수정자 :
*/
오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
public String reply_insert( String board_code ,
String board_no ,
String board_grade ,
String title ,
String content_type ,
String content ,
FormFile file_name ,
String member_id )
{
String file = null;
String current_time = getCurrentTime();
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 + board_no + "_reply_" + current_time.replaceAll( " " , "-" ) + 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 += " ? , ";
sql += " ? , ";
sql += " 0 , ";
sql += " ? , ";
sql += " EMPTY_CLOB() , ";
sql += " ? , ";
sql += " ? ) ";
pstmt = con.prepareStatement(sql);
pstmt.setString( 1 , board_code );
pstmt.setInt( 2 , Integer.parseInt( board_no ) );
//현재 글의 레벨보다 한단계 더한 값을 board_grade에 입력한다.
pstmt.setInt( 3 , ( Integer.parseInt( board_grade ) + 1 ) );
pstmt.setString( 4 , current_time );
pstmt.setString( 5 , Util.uni2ksc( title ) );
pstmt.setString( 6 , content_type );
pstmt.setString( 7 , file );
pstmt.setString( 8 , member_id );
pstmt.executeUpdate();
//CLOB Content 입력
sql = " SELECT CONTENT ";
sql += " FROM BOARD ";
sql += " WHERE BOARD_CODE = ? ";
sql += " AND BOARD_NO = ? ";
sql += " AND BOARD_GRADE = ? ";
sql += " AND WRITE_DATE = ? FOR UPDATE";
pstmt = con.prepareStatement(sql);
pstmt.setString( 1 , board_code );
pstmt.setInt( 2 , Integer.parseInt( board_no ) );
pstmt.setInt( 3 , ( Integer.parseInt( board_grade ) + 1 ) );
pstmt.setString( 4 , current_time );
rs = pstmt.executeQuery();
System.out.println( "--------------------1" );
if( rs.next() )
{
System.out.println( "------------------2-1" );
System.out.println( "------------------2-2" );
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( "reply_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-12
* 작성자 : 김길재
* 수정자 :
*/
public String update( String board_code ,
String board_no ,
String board_grade ,
String write_date ,
String title ,
String content_type ,
String content ,
FormFile file_name )
{
String file = "";
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 + board_no + Util.getExtension( file_name );
FileUploadUtil.FileUpload( file_name , constants.getFILE_PATH() + file );
KKJLog.info( "file = " + file );
}
sql = " UPDATE BOARD SET TITLE = ? , ";
sql += " CONTENT_TYPE = ? ,";
sql += " CONTENT = EMPTY_CLOB() ";
//파일 처리
//새로 업로드한 파일이 있으면 파일명 수정
if( file_name != null && !file_name.getFileName().equals( "" ) )
{
sql += " , FILE_NAME = ? ";
}
sql += " WHERE BOARD_CODE = ? ";
sql += " AND BOARD_NO = ? ";
sql += " AND BOARD_GRADE = ? ";
sql += " AND WRITE_DATE = ? ";
pstmt = con.prepareStatement(sql);
pstmt.setString( 1 , Util.uni2ksc( title ) );
pstmt.setString( 2 , content_type );
int i = 3;
if( file_name != null && !file_name.getFileName().equals( "" ) )
{
pstmt.setString( i++ , file );
}
pstmt.setString( i++ , board_code );
pstmt.setInt( i++ , Integer.parseInt( board_no ) );
pstmt.setInt( i++ , Integer.parseInt( board_grade ) );
pstmt.setString( i++ , write_date );
pstmt.executeUpdate();
//CLOB Content 입력
sql = " SELECT CONTENT ";
sql += " FROM BOARD ";
sql += " WHERE BOARD_NO = ? ";
sql += " AND BOARD_CODE = ? ";
sql += " AND BOARD_GRADE = ? ";
sql += " AND WRITE_DATE = ? FOR UPDATE";
pstmt = con.prepareStatement(sql);
pstmt.setInt( 1 , Integer.parseInt( board_no ) );
pstmt.setString( 2 , board_code );
pstmt.setString( 3 , board_grade );
pstmt.setString( 4 , write_date );
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( "update 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 )
{
}
}
}
댓글 없음:
댓글 쓰기