jsp, MySql 게시판 select 쿼리 질문
조회수 846회
jsp와 mysql을 가지고 글 전체 목록을 조회하는 부분을 짜고있습니다
오라클로 이미 한 번 짰던 코드를 mysql로만 바꾸면 되는 간단한 작업인줄 알았는데 조금 다른 부분이 있어서 어려움을 겪고 있습니다
public ArrayList<BoardDto> getBoardList(HashMap<String, Object> listOpt) {
ArrayList<BoardDto> list = new ArrayList<BoardDto>();
String opt = (String)listOpt.get("opt");
int start = (Integer)listOpt.get("start");
try {
conn = ConnUtil.getConnection();
StringBuffer sql = new StringBuffer();
if(opt == null) {
sql.append("select * from");
sql.append(" (select rownum as rnum, date.* from");
sql.append(" (select board_num, board_id, board_subject,");
sql.append(" board_content, board_file, board_count,");
sql.append(" board_re_ref, board_parent, board_date");
sql.append(" from board a");
sql.append(" date)");
sql.append(" where rnum >= ? and rnum <= ?");
System.out.println(sql);
pstmt = conn.prepareStatement(sql.toString());
pstmt.setInt(1, start);
pstmt.setInt(2, start+9);
sql.delete(0, sql.toString().length());
}
...
저대로 코드를 돌리니
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'date) where rnum >= 1 and rnum <= 10' at line 1
sql 구문 에러가 뜨더라구요...
sql문을 출력하면
select * from (select rownum as rnum, date.* from (select board_num, board_id, board_subject, board_content, board_file, board_count, board_re_ref, board_parent, board_date from board a date) where rnum >= ? and rnum <= ?
이렇습니다
from board 뒤에 a는 alias를 추가해줘야한대서 넣었는데 저렇게 하는게 맞나요?
where문에서 오류가 난걸까요?
MySql 너무 어렵습니다 ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
에러 자체는
from board a
부분이 문법이 잘못되어서인데요. 이참에 쿼리를 전체적으로 보자면...rnum
이 왜 도입됐는지 모르겠네요. 아마도 페이징 때문인 것 같은데요, 실제 조회하는 테이블은board
1개뿐인 거 같고 말이지요.이참에 limit offset을 사용해 보시죠. 아래 코드가 작동하는지 시도해 보시겠어요?
sql.append("SELECT * FROM board ORDERS LIMIT ? OFFSET ?"); pstmt.setInt(1, 10); pstmt.setInt(2, start); // 단, 항상 start % 10 == 0
- 감사합니다! 작동은 하는데 제목이 안 떠서 좀 더 limit offset 구문을 알아봐야할것 같네요! 그래도 오류가 안 뜨고 쿼리문이 작동한다는 것이 너무 감격스럽습니다 ㅠㅠ 알 수 없는 사용자 2020.5.4 20:00
- ㅋㅋ제목은 제가 jsp 파일에 안 넣어서 그랬던거군요... 진짜 저의 부주의에 감탄스럽습니다...ㅠㅠㅋㅋㅋ 알 수 없는 사용자 2020.5.4 20:09
댓글 입력