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:19

save 

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 가 ? 인 

Comments