Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링
- springjdbc
- application.properties
- @ResponseBody
- c:if
- produces
- gradle
- SpringBoot
- @RequestMapping
- Java
- .xml
- @Valid
- 생성자주입
- @RequestParam
- 바인딩변수
- 서비스레이어
- 유효성검사
- after-throwing
- frontController
- spring
- PointCut
- MVC
- jointpoint
- Model
- @
- 비즈니스레이어
- 의존주입
- AOP
- 어노테이션
- springmvc
Archives
- Today
- Total
메모장
Spring JDBC 실습 (selectAll / One) 본문
728x90
반응형
selectOne

public BoardVO selectOne(BoardVO bVO) {
System.out.println("BoardDAO2 로그 selectOne() 메서드");
Object[] args= { bVO.getBid() };
// input 자리에 뭐가 들어갈지 모르기에 배열을 만들어야 된다.
// 그럴땐 최상위 오브젝트
// output : new 나 보드 줘야해 ~ new BoardRowMapper()
return jdbcTemplate.queryForObject(selectOne, args,new BoardRowMapper());
// output은 select * : * 여기에 들어가는게 무엇인지를 생각해서 아웃풋을 만든다.
}
// executeQuery() 개념 (selectOne , INPUT 자리 , OUTPUT 자리)
// 인자자리를 정해져 있지 않았었다 => CUD 파트는
// select 류는 input, output이 정해져 있다.
//queryForObject() 는 update() 와 달리 메서드 시그니쳐가 정해져 있다.
// SQL을 실행할 때에 필요한 INPUT과 , << 배열의 형태로
// SQL을 실행완료한 후의 OUTPUT을 각각 지정해야함 << 객체의 형태로 지정을 해줘야 한다.
output으로 오는 new BoardRowMapper() 는 따로 밑에 클래스를 만들어 줘야 한다.

RowMapper 인터페이스
// 어떤 DB를 어떤 자바객체를 알려준다. // 인터페이스다 보니 강제를 하는데
// 어떤 DB를 어떤 POJO에 매핑하는것을 강제
1) 어떤 ResultSet(DB)을 어떤 자바객체(POJO)와 매핑해야하는지 강제해주는 역할
-> DB와 매핑되는 자바객체 == "VO"
2) VO를 알아야하기때문에 < > 설정 필수 // 로우맵퍼 제네릭 설정 필수
- int rowNum => " 몇 개 " 나오는지도 알수 있다.
// rs.next() 가 if 일지 while일지 구분할때 했던
// 한 개인지, 여러개 인지 판단해주는 거다.
// 그뿐아니라 int 라서 여러개 가 아닌 구체적인 "몇개 " 라는 정보가 담겨있다.
selectAll

selectAll의 쿼리 구문이 세가지로 나뉘어져 있다.
public List<BoardVO> selectAll(BoardVO bVO) {
// selectOne 일때는 // 하나는 .queryForObject
// selectAll 일때는 // 여러 개는 .query 를 사용
List<BoardVO> data = new ArrayList<BoardVO>(); // 담을 배열을 만들어서
Object[] args = { bVO.getSearchContent() }; // input으로 들어갈 인자가 있다면
if(bVO.getSearchCondition() == null) {
data = jdbcTemplate.query(selectAll, new BoardRowMapper());
}
else if(bVO.getSearchCondition().equals("TITLE")) {
data = jdbcTemplate.query(selectAll_TITLE, args, new BoardRowMapper());
}
else if(bVO.getSearchCondition().equals("WRITER")) {
data = jdbcTemplate.query(selectAll_WRITER, args, new BoardRowMapper());
}
return data;
input의 인자가 없다면 args 생략도 가능하다 !!
728x90
반응형
'Spring > 개념정리' 카테고리의 다른 글
| Spring 업로드 사진 출력 실습 (0) | 2024.08.07 |
|---|---|
| Spring 파일 업로드 (0) | 2024.08.07 |
| Spring JDBC (1) | 2024.07.04 |
| AOP 로그 실습 (@ 어노테이션 으로 변경) (0) | 2024.07.04 |
| AOP 실습2 (after-throwing,around 실습) (0) | 2024.07.04 |