studyplan
spring boot 게시판 만들기 6. JDBC Template 사용해서 쿼리문 사용하기 / template.update() 예제 ,template.query() 예제 ,template.queryForObject() 예제 본문
spring boot 게시판 만들기 6. JDBC Template 사용해서 쿼리문 사용하기 / template.update() 예제 ,template.query() 예제 ,template.queryForObject() 예제
무한머니 2022. 7. 19. 18:19save
save 를 한다는건
oracle 테이블에 데이터를 넣는것 !
template.update() 이걸 활용 해야 되는데
괄호 안에는 적용할 sql 과 , ? 안에 들어갈 값을 순서대로 넣어줘야 한다
문자로 된 sql , sql 안의 물음표 값 을 순서대로
findAll 초기버전
select 쿼리문을 쓰려면
template.query() 를 써야하는데 이때 안에 들어갈 값은
사용할 sql 문 + RowMapper<Board> 라는 맵 값이다
RowMapper<Board> 이걸 구성하는 값은
ResultSet rs, int rowNum 이 값이다
ResultSet rs는 위에서 sql 사용한값 /묶음 이라고 생각하면되고
int rowNum (sql 사용한값 /묶음)size() 라고 생각하면된다
그래서 더 초기버전에는
이렇게 된것이고
이 말은
new BoardRowMapper()
가
(rs, rn) -> new Board(rs)
와 같다는 말이고 이때
new Board(rs)
는
sql 문을 돌린 값을 board 에 하나씩 매칭해서 넣어준다는 뜻이다 .
결론 !
template.query(sql, (rs, rn) -> new Board(rs));
이 말은
sql 을 돌린 rs 라는 값을 rn 만큼 포문을 돌리는데 그때 하나하나의 값이 new Board(rs) 이고
이걸
template.query() 라는걸로 감싸면
묶음 리스트가 반환이 되는것이다 !!
findAll 중간 버전
이 코딩의 해석은 ? 쿼리는 안쪽부터 해야됨 그래서 순서대로 안쪽에서 해석하면
1. tbl_board 라는 테이블 안에서 모든 값을 board_no순서대로 인데 DESC 역정렬 !!
2. 정렬된 값에 ROWNUM 이라는 숫자를 붙임
3. ROWNUM 을 앞으로 rn 으로 부르고
rn이 1~ 10 까지 인놈을 불러서 가져옴 ~!!
그런 sql 임
tbl_board board_no DESC
findOne 한명만 찾기 버전
template.queryForObject(sql, (rs, rn) -> new Board(rs), boardNo); 이말은
"SELECT * FROM tbl_board "
= 리스트
template.queryForObject(sql == sql 구문 , (rs, rn) -> new Board(rs) // 리스트 , boardNo == 물음표값 );
리스트 안에
boardNo 값을 가진놈을 부르는 말이다
remove 삭제하기
위와 같다
수정하기
위와 같다
총 게시글 세기
SELECT COUNT(*) AS cnt FROM tbl_board
SELECT / 선택한다
COUNT(*) / (전체)숫자를
AS cnt /cnt 라고 부른다
FROM tbl_board /
tbl_board 라는곳에서
= 총 게시물 수
조회수 올리기
UPDATE tbl_board " +
"SET view_cnt = view_cnt + 1 " +
"WHERE board_no=?";
UPDATE 업데이트 한다 tbl_board 안에있는
"SET 세팅한다 view_cnt에 = view_cnt + 1 "을
"WHERE board_no=?"; board_no 가 ? 인