02. R2dbc MySQL #
R2dbc MysqlConnection #
- Connection을 구현한 MysqlConnection
- ConnectionMetadata를 구현한 MysqlConnectionMetadata
- Statement를 구현한 MysqlStatement
MysqlConnectionFactory #
- Mono 형태로 포함
- MysqlConnectionConfiguration을 인자로 받아서 MysqlConnectionFactory를 생성
- MysqlConnectionFactory로 MysqlConnection 생성
- MysqlConnection으로 MysqlStatement를 생성
- MysqlConnection으로 transaction을 start, rollback, commit
MysqlConnectionConfiguration #
- MYSQL 연결의 설정을 포함하는 객체
- Builder 패턴
- host, port, database, username 등 기본 설정 제공
- serverZoneId 설정
MysqlConnection 생성 #
Sql 준비 #
Sql 실행 #
- ConnectionFactory의 create()를 통해서 connection 접근
- connection의 createStatement를 통해서 sql 준비
- result의 map으로 row에 접근하고 Person으로 변환
- thenMany() chaining : 순차적으로 실행
- selectPeople 결과를 아래로 전달
- result의 map으로 row에 접근하고 Person으로 변환
MysqlConnection의 한계 #
- SQL 쿼리를 명시적으로 전달
- 반환된 결과를 수동으로 파싱
- 별도의 mapper를 만들어야하고 확장성이 떨어짐
Transaction 실행 #
- connection의 beginTransaction과 commitTransaction으로 transaction 시작과 commit 수행
- 롤백 수행 : conn.rollbackTransaction()
- 강의 : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지_