일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springdatajpa
- 알고리즘
- JDBC
- 김영한
- Spring Boot
- Greedy
- QueryDSL
- 스프링
- 자바
- AOP
- transaction
- Android
- 인프런
- JPQL
- java
- jpa
- spring
- 스프링 핵심 원리
- kotlin
- 백준
- Thymeleaf
- Exception
- SpringBoot
- pointcut
- db
- Proxy
- Servlet
- 그리디
- http
- 스프링 핵심 기능
- Today
- Total
목록SpringBoot (47)
개발자되기 프로젝트
1. JPA 의 페이징 JPA에서 페이징 하는 방법 조건 검색 조건 : 나이 10살 정렬 조건 : 이름으로 내림차순 페이징 조건 : 첫 번째 페이지, 페이지 당 보여 줄 데이터는 3건 2. 예제 setFirstResult() : 몇 번 째 부터? setMaxResult() : 몇 개? public List findbyPage(int age, int offset, int limit){ return em.createQuery("select m from Member m where m.age = :age order by m.userName desc") .setParameter("age", age) .setFirstResult(offset) //몇 번째부터? .setMaxResults(limit) // 몇 개? ..
1. JPA 반환 타입 @Test public void returnType(){ Member member1 = new Member("aaa", 10); Member member2 = new Member("bbb", 20); memberRepository.save(member1); memberRepository.save(member2); List members = memberRepository.findListByUserName("aaa"); Optional optionalMember = memberRepository.findOptionalByUserName("aaa"); Member findMember = memberRepository.findMemberByUserName("aaa"); /** * Coll..
1. @Query SpringDataJPA를 활용하여 repository의 method에 바로 쿼리를 정의하자. 실무에서 많이 쓰임 기존 SpringDataJPA에서 제공하는 기능은 조건이 너무 길어지면 method이름이 길어졌다. @Query를 사용하면 method이름은 간략히, 쿼리는 여러 조건을 추가할 수 있다. public interface MemberRepository extends JpaRepository { public List findMemberByUserNameAndAgeGreaterThan(String userName, int age); @Query(name = "Member.findByUserName") List findByUserName(@Param("userName") String..
쿼리에 이름을 부여하고 호출하는 기능 쓸 일이 거의 없음 ㅋㅋㅋㅋ 1. Member Entity @NamedQuery에 쿼리 이름 및 쿼리 작성. 음..? 엔티티에 쿼리를..? @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "userName", "age"}) @NamedQuery( name = "Member.findByUserName", query = "select m from Member m where m.userName = :userName" ) public class Member { 2. MemberJPARepository em.createNamedQuery 사용 publi..
1. 공통 인터페이스 설정 JavaConfig 설정- 스프링 부트 사용시 생략 가능(JpaRepository가 있는 pacakge 지정) @Configuration @EnableJpaRepositories(basePackages = "jpabook.jpashop.repository") public class AppConfig {} 스프링 부트 사용시 @SpringBootApplication 위치를 지정(해당 패키지와 하위 패키지 인식) 만약 위치가 달라지면 @EnableJpaRepositories 필요 2. Spring Data JPA 동작 방식 Spring이 JpaRepository를 상속받은 interface의 구현체를 만들어서 주입. org.springframework.data.repository...
1. 순수 JPA기반 Repository @Repository public class TeamRepository { @PersistenceContext private EntityManager em; public Team save(Team team){ em.persist(team); return team; } public void delete(Team team){ em.remove(team); } public List findAll(){ return em.createQuery("select t from Team t", Team.class).getResultList(); } public Optional findById(Long id){ Team findTeam = em.find(Team.class, id);..
1. application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/datajpa username: sa driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true logging.level: org.hibernate.SQL: debug 2. 엔티티를 만들자. @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String userName; protected Member() { } public Member(Str..
JdbcTemplater과 같은 라이브러리는 JDBC API의 반복 코드를 대부분 제거해줌! 하지만 SQL은 직접 작성해야함! 1. JdbcTemplate사용 JdbcTemplate를 사용하기 위해서는 생성자를 통해 DataSource를 주입받아서 jdbcTemplate를 생성하면 된다. public class JdbcTemplateMemberRepository implements MemberRepository{ private final JdbcTemplate jdbcTemplate; @Autowired //생성자가 하나면 @Autowired생략 가능. public JdbcTemplateMemberRepository(DataSource dataSource) { this.jdbcTemplate = new ..