Spring JDBC (Back End) ... Part 4
2020. 4. 19. 22:23ㆍToday I learned/Online Courses
강의: [edwith 부스트코스] 웹 프로그래밍 챕터 3, 웹 앱 개발: 예약서비스 1/4
학습일: 2020년 4월 19일
8. Spring JDBC - BE
Spring JDBC를 이용해 INSERT 쿼리문 실행하기
- 쿼리문 실행에 필요한 클래스
- SELECT와 달리, 별도의 쿼리문이 필요하지 않으므로 RoleDaoSqls 클래스는 사용하지 않음
- INSERT 쿼리문을 실행하기 위한 SimpleJdbcInsert 객체를 필요로 함
- RoleDao 클래스 수정
-
- SimpleJdbcInsert 타입 객체 insertAction 선언
- RoleDao 생성자에 SimpleJdbcInsert 객체를 dataSource로 생성
- 쿼리문의 대상 테이블은 withTableName( ) 메서드로 입력
- 쿼리문을 실행할 insert( ) 메서드 생성
- Role 객체를 받아 매개변수로 이루어진 map 객체 params를 생성
- execute( ) 메서드의 인자로 params를 전달해 실행
- ※ SimpleJdbcInsert 객체를 사용하는 이유
- UPDATE와 동일한 방식으로 쿼리문을 입력하고 update( ) 메서드로 실행해도 동작함
- SimpleJdbcInsert 객체를 사용하면 SQL을 만들 필요가 없고, INSERT 후 Primary Key 값을 가져올 수 있음
-
- INSERT 쿼리문 실행 테스트하기
- JDBCTest 클래스 생성
- 패키지: kr.or.connect.daoexam.main
-
- ApplicationContext(공장)에 만들 객체에 대한 정보를 담은 클래스의 경로를 입력
- getBean( ) 메서드로 ApplicationContext에서 RoleDao 객체를 얻어냄
- Role 객체 생성하고 INSERT할 데이터 입력
- RoleDao 객체의 insert( ) 메서드로 쿼리문을 실행한 뒤, 결과값을 count 변수에 저장
- JDBCTest 클래스 생성
Spring JDBC를 이용해 UPDATE 쿼리문 실행하기
- 쿼리문 실행에 필요한 클래스
- SELECT 쿼리문과 동일
- RoleDaoSqls 클래스 수정
- 사용할 UPDATE 쿼리문을 상수에 입력
- SQL 쿼리문과 구조는 동일하나, mapping될 값이 ?이 아닌 :필드명의 형태를 띄는 것이 차이
- RoleDao 클래스 수정
- 쿼리문을 실행할 update( ) 메서드 생성
- Role 객체를 받아 매개변수로 이루어진 map인 params를 생성
- update( ) 메서드의 인자로 쿼리문 UPDATE와 params를 전달해 실행
- UPDATE 쿼리문 실행 테스트하기
- JDBCTest 클래스 수정
-
- ApplicationContext(공장)에 만들 객체에 대한 정보를 담은 클래스의 경로를 입력
- getBean( ) 메서드로 ApplicationContext에서 RoleDao 객체를 얻어냄
- Role 객체 생성하고 UPDATE할 데이터 입력
- RoleDao 객체의 update( ) 메서드로 쿼리문을 실행한 뒤, 결과값을 count 변수에 저장
Spring JDBC를 이용해 SELECT_BY_ID 쿼리문 실행하기
- 쿼리문 실행에 필요한 클래스
- SELECT 쿼리문과 동일
- RoleDaoSqls 클래스 수정
- 사용할 SELECT_BY_ROLE_ID 쿼리문을 상수에 입력
- RoleDao 클래스 수정
- 쿼리문을 실행할 selectById( ) 메서드 생성
- 검색하고자 하는 roleId를 인자로 받아 매개변수로 이루어진 map인 params를 생성
- 매개변수가 하나이므로 SqlParameterSource 대신 Map<String, ?>를 활용
- queryForObject( ) 메서드의 인자로 쿼리문 SELECT_BY_ID와 params, 그리고 결과를 담을 rowMapper를 전달해 실행
- 단일 레코드를 조회할 땐 query( ) 메서드 대신 queryForObject( ) 메서드를 사용함
- 검색하고자 하는 roleId를 인자로 받아 매개변수로 이루어진 map인 params를 생성
- SELECT_BY_ID 쿼리문 실행 테스트하기
- JDBCTest 클래스 수정
-
- ApplicationContext(공장)에 만들 객체에 대한 정보를 담은 클래스의 경로를 입력
- getBean( ) 메서드로 ApplicationContext에서 RoleDao 객체를 얻어냄
- RoleDao 객체의 update( ) 메서드로 쿼리문을 실행한 뒤, 결과값을 Role 객체에 담아 반환
Spring JDBC를 이용해 DELETE_BY_ROLE_ID 쿼리문 실행하기
- 쿼리문 실행에 필요한 클래스
- SELECT 쿼리문과 동일
- RoleDaoSqls 클래스 수정
- 사용할 DELETE_BY_ROLE_ID 쿼리문을 상수에 입력
- RoleDao 클래스 수정
- 쿼리문을 실행할 deleteById( ) 메서드 생성
- 검색하고자 하는 roleId를 인자로 받아 매개변수로 이루어진 map인 params를 생성
- update( ) 메서드의 인자로 쿼리문 DELETE_BY_ROLE_ID와 params를 전달해 실행
- DELETE 쿼리문 실행 테스트하기
- JDBCTest 클래스 수정
-
- ApplicationContext(공장)에 만들 객체에 대한 정보를 담은 클래스의 경로를 입력
- getBean( ) 메서드로 ApplicationContext에서 RoleDao 객체를 얻어냄
- RoleDao 객체의 deleteById( ) 메서드로 쿼리문을 실행한 뒤, 결과값을 count 변수에 저장
'Today I learned > Online Courses' 카테고리의 다른 글
Spring MVC (Back End) ... Part 2 (0) | 2020.04.22 |
---|---|
Spring MVC (Back End) ... Part 1 (0) | 2020.04.22 |
Spring JDBC (Back End) ... Part 3 (0) | 2020.04.17 |
Spring JDBC (Back End) ... Part 2 (0) | 2020.04.17 |
Spring JDBC (Back End) ... Part 1 (0) | 2020.04.16 |