JSP로 게시판 작성 공부중입니다. 질문이요~
가자
DBBean 페이지 중에서 일부분입니다.
게시판에 제목,이름,내용 등등을 입력 후 작성완료를 하면DB에 저장은 되는데
ref(글번호) 값이 1로 저장이 되네요.. 오류도 없고 애먹고 있습니다.
제 생각엔 빨강색 글씨로 해놓은 if문이 이상이 있는듯 보이는데 어떻게 손을 댈지도 모르겠고
맞는지도 모르겠고....
고수님들의 깔끔한 힌트를 부탁드립니다.public void insertArticle(BoardDataBean article)
throws Exception
{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int num = article.getNum();
int ref= article.getRef();
int re_step = article.getRe_step();
int re_level = article.getRe_level();
int number=0;
String sql=;
try {
conn = getConnection();
pstmt = conn.prepareStatement(select max(num) from board);
rs = pstmt.executeQuery();
if (rs.next())
number=rs.getInt(1)+1;
else
number=1;
if (num != 0)
{
sql=update board set re_step=re_step+1 where ref= ? and re_step ?;
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, ref);
pstmt.setInt(2, re_step);
pstmt.executeUpdate();
re_step = re_step+1;
re_level = re_level+1;
} else {
ref=number;
re_step=0;
re_level=0;
}
sql = insert into board(num,writer,email,subject,passwd,reg_date,;
sql+=ref,re_step,re_level,content,ip) values(board_num.NEXTVAL,?,?,?,?,?,?,?,?,?,?);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, article.getWriter());
pstmt.setString(2, article.getEmail());
pstmt.setString(3, article.getSubject());
pstmt.setString(4, article.getPasswd());
pstmt.setTimestamp(5, article.getReg_date());
pstmt.setInt(6, article.getRef());
pstmt.setInt(7, article.getRe_step());
pstmt.setInt(8, article.getRe_level());
pstmt.setString(9, article.getContent());
pstmt.setString(10, article.getIp());
pstmt.executeUpdate();
} catch(Exception ex) {
ex.printStackTrace();
} finally {
if (rs != null) try { rs.close(); } catch(SQLException ex) {}
if (pstmt != null) try { pstmt.close(); } catch(SQLException ex) {}
if (conn != null) try { conn.close(); } catch(SQLException ex) {}
}
}
-
물
그렇다면 리스트가 나타나는 페이지에 사용된 SQL에 문제가 있을 것 같네요 소트 해주는 부분을 확인해 보세요... order by num desc
-
봄바람
리얼비수다님 말씀대로 수정해봤지만 여전히 같네요.. 글을 입력하면 가장 끝번호 다음에 글이 입력되어
게시판의 가장 상단에 나타나야하는데 1번으로 인식되어 게시판의 가장 마지막페이지에 올라가버리네요 -
리라
sql+=\ref,re_step,re_level,content,ip) values(\+number+\
-
큰깃
sql을 보면 변수 number와 상관없이 board_num.NEXTVAL을 사용하시네요 ... 자동 증가값의 세팅 확인해보세요....