이 글은 인프런 김영한님의 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 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.기본적인 트랜잭션 커밋, 롤백 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 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 2024.03.02 - [Java Category/Spring] - [Spring DB] 트랜잭션 AOP [Spring DB] 트랜잭션 AOP 이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 트랜잭션 AOP(Aspect-Oriented Programming)는 스프링 프레임워크가 트랜잭션 관리를 위해 제공하는 선언적 트 rebugs.tistory.com 위 포스트와 관련있습니다. 트랜잭션 적용 확인 @Transactional 을 통해 선언적 트랜잭션 방식을 사용하면 단순히 애노테이션 하나로 트랜잭션을 적용할 수 있다. 그런데 이 기능은 트랜잭션 관련 코드가 눈에 보..
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. MyBatis 소개와 장점 및 단점 MyBatis는 자바(JAVA) 언어로 작성된 오픈 소스 SQL 매핑 프레임워크이다. JDBC(Java Database Connectivity) 위에 구축되어 데이터베이스와의 상호작용을 추상화하며, 개발자가 SQL 문을 직접 제어할 수 있게 해주는 특징을 가진다. 이는 개발자가 객체와 SQL 문 사이의 매핑을 설정하여, 데이터베이스 작업을 더 쉽고 직관적으로 할 수 있게 돕는다. MyBatis의 주요 기능 SQL 분리: MyBatis는 SQL을 자바 코드에서 분리하여 XML 파일이나 어노테이션에 작성하도록 한다. 이로써, SQL 관리가 용이하고 가독성이 높아진다. 동적 SQL..
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. @SpringBootTest와 @SpringBootApplication @SpringBootApplication @SpringBootApplication은 Spring Boot 애플리케이션의 주 진입점에 위치하는 어노테이션이다. 이 어노테이션은 @Configuration, @EnableAutoConfiguration, @ComponentScan 어노테이션들의 기능을 합친 것으로, Spring Boot 애플리케이션을 자동 설정하고, 애플리케이션 컨텍스트에서 빈을 검색하며, 추가적인 설정을 로드하는 역할을 한다. 기본적으로, 이 어노테이션이 붙은 클래스는 애플리케이션의 메인 클래스로, 애플리케이션 실행 시 스프링 ..
SimpleJdbcInsert는 Spring Framework에서 제공하는 JDBC 추상화의 일부로, 데이터베이스에 새로운 레코드를 삽입하는 작업을 단순화하고 편리하게 만들어준다. NamedParameterJdbcTemplate과 유사하게, SimpleJdbcInsert는 이름이 지정된 파라미터를 사용하여 SQL 쿼리 없이 데이터베이스 테이블에 직접 삽입할 수 있게 해준다. 이를 통해 코드의 가독성이 향상되고, SQL 쿼리 실수를 줄일 수 있다. 설정 방법 SimpleJdbcInsert는 DataSource를 사용하여 생성될 수 있다. 생성 후, 사용할 데이터베이스 테이블과 해당 테이블의 기본 키 컬럼을 설정할 수 있다. @Autowired private DataSource dataSource; priv..
NamedParameterJdbcTemplate은 Spring Framework의 JDBC 접근 방법 중 하나로, JdbcTemplate과 유사하게 작동하지만, SQL 파라미터를 이름으로 지정할 수 있다는 주요 차이점이 있다. 이는 코드의 가독성을 높이고, SQL 쿼리의 파라미터를 더 명확하게 만드는 데 도움을 준다. CRUD 설정 NamedParameterJdbcTemplate 인스턴스를 생성해야 한다. 이는 보통 DataSource를 주입하여 생성된다. @Autowired private DataSource dataSource; private NamedParameterJdbcTemplate jdbcTemplate; @PostConstruct public void postConstruct() { jdbc..
공식 메뉴얼 https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#jdbc- JdbcTemplate DataSource 설정 JDBC Template 사용을 위해서는 데이터베이스와의 연결을 관리하는 DataSource를 설정해야 한다. application.properties spring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.username=yourName spring.datasource.password=yourPassword 이렇게 하면 내부적으로 DataSource 빈을 자동으로 생성하고 구성합니다. JdbcTemplate 인스..