![[Spring DB] 트랜잭션 전파 활용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fch0RR7%2FbtsGvU58WLP%2FAAAAAAAAAAAAAAAAAAAAAGg9kPYrSiZz-G2WKTtO2tFbTO2KFAmPPtLPLgHzYphK%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DliU0O8X2H5XuBRhvv74iP1B2KIE%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 예제 프로젝트 더보기 Member @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String username; public Member() { } public Member(String username) { this.username = username; } } MemberRepository @Slf4j @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; @Transacti..
![[Spring DB] 트랜잭션 전파](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FuLdHP%2FbtsGsUSJ0rT%2FAAAAAAAAAAAAAAAAAAAAAGMFN5w5hZYvNsFXs0jgq_GJDaNJ0o7ps8aSKiQvIRC5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dq7smpPbGeO4BJNBRaWcNtEKuo%252FA%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.기본적인 트랜잭션 커밋, 롤백 application.propertieslogging.level.org.springframework.transaction.interceptor=TRACElogging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager=DEBUG#JPA loglogging.level.org.springframework.orm.jpa.JpaTransactionManager=DEBUGlogging.level.org.hibernate.resource.transaction=DEBUG#JPA SQLlogging.level.org.hib..
![[Spring DB] 스프링 트랜잭션의 이해](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FYTu2A%2FbtsGpoNK95u%2FAAAAAAAAAAAAAAAAAAAAAEEnu5L1NFx63yUJ6XeMbObUFXdvGNKyOsVZ4lcBI_AW%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D0fP3VlyH6IKIR2GqXg2EjsLEOW4%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 2024.03.02 - [Java Category/Spring] - [Spring DB] 트랜잭션 AOP [Spring DB] 트랜잭션 AOP 이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 트랜잭션 AOP(Aspect-Oriented Programming)는 스프링 프레임워크가 트랜잭션 관리를 위해 제공하는 선언적 트 rebugs.tistory.com 위 포스트와 관련있습니다. 트랜잭션 적용 확인 @Transactional 을 통해 선언적 트랜잭션 방식을 사용하면 단순히 애노테이션 하나로 트랜잭션을 적용할 수 있다. 그런데 이 기능은 트랜잭션 관련 코드가 눈에 보..
![[DBeaver] Mac에서 Scott, HR 테이블 생성 및 데이터 입력](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FvMwLk%2FbtsGjRVDxBk%2FAAAAAAAAAAAAAAAAAAAAAJ1OscK7ooD0el-zmSdTLO8Dhg4O18sNLlikaGxB17sl%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DoSE6x%252B3Tud%252BMPfRkCRLcmlzB0GE%253D)
2024.02.22 - [데이터베이스/기타] - Mac에서 Oracle(XE) + Mysql + DBeaver 설치 Mac에서 Oracle(XE) + Mysql + DBeaver 설치 아래의 모든 명령어은 Homebrew가 설치되어있다고 가정한다. DBeaver 설치 터미널에서 아래의 명령어를 입력하면 특별한 오류가 나지 않는이상 설치는 완료된다. brew install --cask dbeaver-community 이후 rebugs.tistory.com Scott 사용하기 관리자 권한으로 sqlplus 접속 docker exec -it oracle sqlplus SCOTT 계정 생성 및 권한 부여 CREATE USER scott identified by tiger; -- 한줄씩 입력해주세요. GRANT ..
![[Spring DB] MyBatis](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbjOXJh%2FbtsGdCd51Qd%2FAAAAAAAAAAAAAAAAAAAAAKMiuEMgIBC40M1kIvFgsDdM7qAiJuaFAjkFiFqPHBy_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Ds7ZnY%252BE943qadHFuQpna8vLDuvY%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. MyBatis 소개와 장점 및 단점 MyBatis는 자바(JAVA) 언어로 작성된 오픈 소스 SQL 매핑 프레임워크이다. JDBC(Java Database Connectivity) 위에 구축되어 데이터베이스와의 상호작용을 추상화하며, 개발자가 SQL 문을 직접 제어할 수 있게 해주는 특징을 가진다. 이는 개발자가 객체와 SQL 문 사이의 매핑을 설정하여, 데이터베이스 작업을 더 쉽고 직관적으로 할 수 있게 돕는다. MyBatis의 주요 기능 SQL 분리: MyBatis는 SQL을 자바 코드에서 분리하여 XML 파일이나 어노테이션에 작성하도록 한다. 이로써, SQL 관리가 용이하고 가독성이 높아진다. 동적 SQL..
문제상황 맥OS에서 Oracle 데이터베이스를 사용하려는 과정에서 아래의 명령어를 입력하였다. colima start --arch x86_64 --cpu 4 --memory 8 위 명령어를 실행하면 FATA[0022] error starting vm: error at 'starting': exit status 1 오류가 발생하였다. 해결 폭풍 구글링 결과 아래의 링크에서 해답을 찾을 수 있었다. https://stackoverflow.com/questions/77195672/keep-getting-error-runing-colima-fata0001-error-starting-vm-error-at-startin Keep getting error runing colima FATA[0001] error sta..
![[Spring DB] 데이터 접근 계층 테스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FYVXrQ%2FbtsGcJ3O8O0%2FAAAAAAAAAAAAAAAAAAAAAEuGUW-K59SBFZbWF0V8qmaoTOMpDVdSp8QU0ouMktLk%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DUsefLwXGZbo909sN8uEBizxa54k%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. @SpringBootTest와 @SpringBootApplication @SpringBootApplication @SpringBootApplication은 Spring Boot 애플리케이션의 주 진입점에 위치하는 어노테이션이다. 이 어노테이션은 @Configuration, @EnableAutoConfiguration, @ComponentScan 어노테이션들의 기능을 합친 것으로, Spring Boot 애플리케이션을 자동 설정하고, 애플리케이션 컨텍스트에서 빈을 검색하며, 추가적인 설정을 로드하는 역할을 한다. 기본적으로, 이 어노테이션이 붙은 클래스는 애플리케이션의 메인 클래스로, 애플리케이션 실행 시 스프링 ..
![[Spring DB] SimpleJdbcInsert](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FccRPmR%2FbtsGbHyPzAZ%2FAAAAAAAAAAAAAAAAAAAAALTrg0GjACW-iBEVo88Ct045QeqJ9MLY2BdyfLPRf1sM%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DPOO4jKW2y%252Fw9UkPrdQVlxvmeu8A%253D)
SimpleJdbcInsert는 Spring Framework에서 제공하는 JDBC 추상화의 일부로, 데이터베이스에 새로운 레코드를 삽입하는 작업을 단순화하고 편리하게 만들어준다. NamedParameterJdbcTemplate과 유사하게, SimpleJdbcInsert는 이름이 지정된 파라미터를 사용하여 SQL 쿼리 없이 데이터베이스 테이블에 직접 삽입할 수 있게 해준다. 이를 통해 코드의 가독성이 향상되고, SQL 쿼리 실수를 줄일 수 있다. 설정 방법 SimpleJdbcInsert는 DataSource를 사용하여 생성될 수 있다. 생성 후, 사용할 데이터베이스 테이블과 해당 테이블의 기본 키 컬럼을 설정할 수 있다. @Autowired private DataSource dataSource; priv..