본문 바로가기

Spring/Spring JDBC

(7)
[Spring] [SpringJDBC] insert시, key값 알아오기 keyholder를 사용하면, auto-generated된 key값을 가져올 수 있다. private NamedParameterJdbcTemplate jdbcTemplate; // 1. reservation_info 만들어서 insert // 이때, pk값 알아와야한다 public int insertReservationInfo(ReservationInfo reservationInfo){ Map params = new HashMap(); params.put("product_id", reservationInfo.getProductId()); params.put("display_info_id", reservationInfo.getDisplayInfoId()); params.put("user_id", reser..
[Spring] [Spring JDBC] RowMapper와 @NoArgsConstructor, @Setter spring JDBC를 사용하면, rowMapper를 통해서 select한 값을 dto로 변환한다. 이때, 기본 생성자가 반드시 있어야 하므로, @NoArgsConstructor를 붙여주자. (@Builder나, @AllArgsConstructor를 사용하면, 기본 생성자가 안생기므로 그때 반드시 @NoArgsConstructor를 붙여야 한다!) 추가로, Setter 또한 반드시 있어야 한다. 이걸로 진짜 엄청 고생했으므로, @Setter를 붙이자. (빌더 패턴을 사용한다고 엔티티 클래스에는 setter를 안붙였는데, spring-jdbc를 사용하는 이상 setter를 붙여야 한다)
[Spring] [Spring JDBC] 5. Spring JDBC 실습 진행 3 - insert(), update() 앞선 selectAll() 실습에서 ApplicationConfig 관련 설정은 전부 다 했으므로, RoleDao 클래스에 insert, update 관련 부분만 작성해주면 된다. 1. RoleDaoSqls 에 쿼리문 추가하기 update는 sql문을 추가해주어야 한다. 따라서, RoleDaoSqls에 다음과 같은 sql을 추가하자 public class RoleDaoSqls { public static final String SELECT_ALL = "SELECT role_id, description FROM role ORDER BY role_id"; public static final String UPDATE = "UPDATE role SET description = :description where ..
[Spring] [Spring JDBC] 4. Spring JDBC 실습 진행 2 - selectAll() 필요한 것들 DTO 만들기 데이터를 주고받을 DTO 만들어야 한다 RoleDaoSqls 클래스 - 해당 클래스에 select 하는 쿼리 상수 포함 DAO 만들기 어떤 하나의 객체(여기서는 Role 객체)에 대한 데이터를 엑세스 할 수 있는 객체이다. (Data Access Object) 스프링 컨테이너가 빈으로 등록해야 하므로, @Repository 어노테이션 붙이기 이미 Spring JDBC에서 구현해둔 NamedParameterJdbcTemplate, SimpleJdbcInsert 객체를 사용하여, selelctAll() 메서드를 작성한다. ApplicationConfig에 @ComponentScan 붙이기 1. DTO public class Role { private int roleId; priva..
[Spring] [Spring JDBC] 3. Spring JDBC 실습 진행 들어가기 전 maven archetype의 maven-archetype-quickstart로 프로젝트를 생성하였다. spring Initializer로 하지 않았다는 것을 알고 있자. (정확한 차이는 모르겠지만, maven-archetype-quickstart으로 진행하는 것이 dependency 설정을 더 자잘하게 해주는 느낌이다. spring-context, spring-jdbc, spring-tx 를 추가하기 때문) 1. pom.xml에 필요한 dependency 추가하기 spring-context spring-jdbc spring-tx mysql driver datasource(apache에서 제공하는 datasource) org.springframework spring-context ${spri..
[Spring] [Spring JDBC] 2. Spring JDBC 실습 개요 DTO란? DTO란 Data Transfer Object의 약자입니다. 계층간 데이터 교환을 위한 자바빈즈입니다. 여기서의 계층이란 컨트롤러 뷰, 비지니스 계층, 퍼시스턴스 계층을 의미합니다. 일반적으로 DTO는 로직을 가지고 있지 않고, 순수한 데이터 객체입니다. 필드와 getter, setter를 가진다. 추가적으로 toString(), equals(), hashCode()등의 Object 메소드를 오버라이딩 할 수 있습니다. DTO의 예 public class ActorDTO { private Long id; private String firstName; private String lastName; public String getFirstName() { return this.firstName; } ..
[Spring] [Spring JDBC] 1. Spring JDBC 개요 Spring JDBC가 지원하는 기능 - 개발자가 할 일은? SpringJDBC 패키지 org.springframework.jdbc.core JdbcTemplate 및 관련 Helper 객체 제공 org.springframework.jdbc.datasource DataSource를 쉽게 접근하기 위한 유틸 클래스, 트랜젝션매니져 및 다양한 DataSource 구현을 제공 org.springframework.jdbc.object RDBMS 조회, 갱신, 저장등을 안전하고 재사용 가능한 객제 제공 org.springframework.jdbc.support jdbc.core 및 jdbc.object를 사용하는 JDBC 프레임워크를 지원 JdbcTemplate org.springframework.jdbc.cor..