전체 글

QueryDSLSpring Data Jpa의 한계Spring Data Jpa를 통해 Jpa를 더욱 더 편리하게 사용할 수 있었다.하지만 여전히 해결되지 않는 두 가지 문제가 있다.그 두 가지 문제는 다음과 같다. 1.  동적쿼리 문제@Overridepublic List findAll(ItemSearchCond cond) { String itemName = cond.getItemName(); Integer maxPrice = cond.getMaxPrice(); if(StringUtils.hasText(itemName) && maxPrice != null) {// return repository.findByItemNameLikeAndPriceLessThanEqual(ite..
Spring Data JPA란?JPA는 JdbcTemplate, MyBatis 등의 SQL Mapper 기술의 많은 단점들을 보완한 획기적인 기술이었다.하지만 JPA를 사용하기 위해선 많은 설정과 많은 코드를 필요로 했다. 따라서 Spring 프레임워크는 JPA를 적은 설정과 적은 코드로 사용할 수 있도록 별도의 라이브러리를 만들었다.그것이 바로 Spring Data JPA이다. Spring Data JPA는 다음의 기능을 제공한다. 1. 공통 인터페이스 기능 Spring Data JPA는 기본적으로 사용하는 CRUD 기능을 하나의 공통 인터페이스로 만들어서 제공한다.그 인터페이스가 바로 JpaRepository이다.JpaRepository는 다양한 인터페이스를 상속받아 일반적으로 사용되는 CRUD기능을..
SQL Mapper의 단점1. 개발자가 직접 SQL을 작성해야 함 SQL을 작성하는 것은 매우 귀찮은 작업일 뿐더러 다음과 같이 테이블의 필드가 하나 추가되면 모든 SQL을 다 뜯어 고쳐야 함 2. 객체와 관계형 데이터베이스의 패러다임의 불일치 상속, 연관관계, 데이터 타입, 데이터 식별 방법 등의 패러다임의 차이를 개발자가 일일이 매핑해줘야 한다.  ORM의 등장과 JPASQL Mapper의 단점을 보완하기 위해 등장한 것이 바로 ORM(Object Relational Mapping) 객체는 객체답게 설계하고테이블은 테이블 답게 설계한다.중간에서 둘의 차이를 매핑시켜주는 것이 ORM의 역할이다.  JPAJPA란 Java Persistence API의 약자로 자바진영의 ORM 기술 표준 인터페이스를 의미..
MyBatis란?MyBatis란 SQL Mapper기술의 한 종류로 JdbcTemplate과 마찬가지로 반복적인 Jdbc 코드를 대신 처리해주고 데이터베이스 테이블과 객체를 매핑하는 편리한 방법을 제공해준다. MyBatis는 JdbcTemplate과는 달리 xml을 기반으로 sql을 작성할 수 있으며 JdbcTemplate의 단점이었던 동적쿼리 문제를 해결해준다. 이제 본격적인 사용법을 알아보자. MyBatis 사용하기 사용법을 이해하기 위한 테스트케이스는 다음과 같다.더보기1. 아이템 도메인(Item)@Datapublic class Item { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private..
jaehee1113
나의 개발 발자취