반응형
SMALL

전체 글 205

[NamedParameterJdbcTemplate]

* Name Parameter 사용 지원 - 질의에 포함된 파라미터에 이름 사용이 가능 - 제공하는 메소드는 JdbcTemplate과 유사하나 Object 배열을 쓰는게 아니라 Map이나 SqlParameterSource를 사용하여 질의 파라미터들을 전달 받음 - 그니까 원래는 Object[] 에 파라미터들 받았는데 이걸 안쓰고 이름으로 해결 - 파라미터를 JdbcTemplate은 ?(물음표)로 나타냈는데 여기서는 :categoryId 이런식으로 :컬럼명 으로 나타냄 - ?이면 순서가 중요하고 그러다보니 실수할 확률이 높은데 이거는 이름으로 고정시켜버리니까 실수할 확률 적음 - 순서도 무의미 private static final String GET_CATEG..

SPRING 2019.05.13

[JdbcTemplate] 그 외 메소드 / 가변 길이 인자 지원

* Insert / Update / Delete 메소드 : SQL insert / update / delete 실행 : 실행 결과 삽입 / 변경 / 삭제 된 행(row)의 개수를 반환 private static final String INSERT_SQL = "insert into CATEGORY (CATID, NAME, DESCN) values (?, ?, ?)"; //파라미터 존재 public void insertNewCategory(Category category) { jdbcTemplate.update(INSERT_SQL, // sql new Object[] {category.getCategoryId(), category.getName(), category.getDescription() }, // ..

SPRING 2019.05.13

[JdbcTemplate] List<T> query 메소드들

List query : 일반적으로 질의가 여러 개의 column들을 검색하는 경우 사용 ① DAO 구현 클래스 public class JdbcTemplateCategoryDao implements CategoryDao { private JdbcTemplate jdbcTemplate; // 템플릿을 DAO에 주입 (date source ---> template ---> dao) private static final String GET_CATEGORY_SQL = "select CATID, NAME, DESCN from CATEGORY"; ... public List getCategoryList() { List list = jdbcTemplate.query(GET_CATEG..

SPRING 2019.05.13

RowMapper

* DB 연동 시 select문을 수행하는 경우 결과값이 단순하게 정수 값 하나거나 문자열 하나로 받는게 아니라 DTO 혹은 VO객체에 여러가지 값으로 가져와야 하는 경우가 있다. 이런 경우 DTO 혹은 VO 객체에 DB에서 select한 데이터가 어떻게 mapping 되어야 하는지(--> 그니까 파싱을 말하는 듯)에 대한 정의가 필요하다. 이 mapping과 관련된 설정을 위해서 제공되는 것이 RowMapper 인터페이스 이다. public interface RowMapper { T mapRow(ResultSet rs, int romNum) throws SQLExcpetion; } * mapRow() : ResultSet의 특정 행에 대해 T type 객체를 하나 생성 및 반환 * ResultSet :..

SPRING/term 2019.05.13

외부 설정 Property

- 스프링에서 설정한건 스프링에서만 주로 쓰이니까.. - 외부에서 작성해 놓은 파일을 스프링에 가져와서 쓰자! - 환경변수나 file에다가 property를 설정해놓는거지 그걸 가져와서 스프링에서 쓰자는거야 - 수정이 용이하다. properties 파일만 수정하면 되니까 ★ Propetry File은 config/db.properties 이런식으로 config 아래에 .properties 확장자로 만들어져있음 ex) jdbc.driver=com.mysql.jdbc.Driver 이런식으로 별칭.필드이름=경로..? ① PropertyPlaceholderConfigurer 이용 - 이 객체를 통해 외부에 존재하는 property file을 load - file의 목록을 location 또는 locations ..

SPRING 2019.03.28

Bean Scope (Bean 유효범위)

- bean 객체를 언제 얼만큼 생성할지 결정 - 스프링 컨테이너는 기본적으로 하나의 bean 설정에 대해 한개의 bean 객체만 만든다! ===> Singleton - 그니까 자바에서는 Car aaa = new Car(); / Car bbb = new Car(); 이러면 aaa랑 bbb가 다른 클래스 였어도 서로 다른걸 참조하고 있는거였잖아 근데 스프링 컨테이너에서는 이렇게하면 두개가 같은걸 참조하고 있는거야 다른게 아니야 왜냐면 bean 하나당 하나의 객체만 만드니까 그저 그 하나를 여러군데에서 공유하고 있는거야 - 의 속성으로 걸거나 - 속성 아무것도 안붙이면 그냥 singleton인거야 - - @Scope 쓰거나 @Scope(value="prototype", ~~) singleton : defau..

SPRING 2019.03.28

Bean 객체의 Life-Cycle 관리

Spring Container의 역할 - bean 객체의 생성, 초기화, 소멸 등 life-cycle 관리 - 어떻게? - 각 bean에 대해 life-cycle 관련 메소드를 호출해서 실행함으로써 관리하는거야 1) Bean class(우리가 만든 클래스)에서 life-cycle랑 관련된 인터페이스의 callback 메소드를 구현 ---> 그러면 그걸 스프링 컨테이너가 알아서 적절한 시점에 호출해서 실행시킴 ex) BeanNameAware.setBeanName() ---> 구현은 개발자가 = 스프링이 제공하는 특정 인터페이스를 상속받아 빈을 구현한다. 2) org.springframework.beans.factory.config.BeanPostProcessor를 구현한 클래스의 객체를 bean으로 등록하..

카테고리 없음 2019.03.28
반응형
SMALL
반응형
LIST