본문 바로가기

Back-End/Spring11

[spring boot] @Query 어노테이션 @Query란? JPA에서 조인이나 복잡한 조건을 처리해야 하는 경우에 사용한다. 간단한 처리만 쿼리 메소드를 이용하고, 보통은 @Query를 이용하는 경우가 많다. 메소드의 이름과 상관없이 메소드에 추가한 어노테이션을 통해 원하는 처리가 가능하다. @Query의 value는 JPQL로 작성하는데 흔히 객체지향 쿼리라고 불리우는 구문들이다. @Query 장점 필요한 데이터만 선별적으로 추출하는 기능 DB에 맞는 순수한 SQL을 사용하는 기능 select가 아닌 DML(insert, update, delete)등을 처리하는 기능(@Modifiying과 함께 사용) @Query 파라미터 바인딩 ?1. ?2' 와 1부터 시작하는 파라미터의 순서를 이용하는 방식 ':xxx' 와 같이 : 파라미터 이름을 활용하는.. 2022. 6. 14.
[spring boot] JPA 페이징/정렬 처리 JPA의 페이징 처리 JPA는 개발자들이 SQL이 아닌 API의 객체와 메서드를 사용하는 형태로 페이징 처리를 할 수 있다. 페이징 처리할때 사용하는 메소드는 findAll() 이다. findAll()메소드는 ]paRepository 인터페이스의 상위인 PagingAndSortRepository의 메서드로 파라미터로 전달되는 Pageable이라는 타입의 객체에 의해서 실행되는 쿼리를 결정하게 된다. Pageable 인터페이스 Pageable 인터페이스는 페이지 처리에 필요한 정보를 전달하는 용도의 타입으로 인터페이스이기 때문에 실제 객체를 생성할 때는 구현체인 PageRequest라는 클래스를 사용한다. PageRequest 클래스의 생성자는 protected로 선언되어 new를 사용할수 없고, 객체를 .. 2022. 6. 14.
[spring boot] JPA로 CRUD 테스트 JpaRepository 인터페이스 package org.zeorck.ex2.repository; import org.zerock.ex2.entity.Memo; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository // JPA를 사용할 때는 엔티티의 타입정보(Memo)와 @Id 타입(Long)을 지정한다 // JPA는 인터페이스 선언만으로도 자동으로 스프링의 빈(Bean)으로 등록된다 public interface MemoRepository extends JpaRepository { // crud 사용가능 ! } insert 작업 : sa.. 2022. 6. 10.
[Spring boot] JPA & MariaDB 테이블생성 Application.properties server.port=8181 // 서버 포트 설정(기본값 8080) => 내장 톰캣이기때문 spring.datasource.driver-class-name=org.mariadb.jdbc.Driver // mariadb 부분만 다른걸로 변경하면 연동 가능 spring.datasource.url=jdbc:mariadb://localhost:3306/bootex // bootex DB에 연동 spring.datasource.username=bootuser // 아이디 spring.datasource.password=bootuser // 패스워드 spring.jpa.hibernate.ddl-auto=update //프로젝트 실행시 자동으로 DDL(create, alte.. 2022. 6. 10.
[spring boot] 간단한 방명록 만들기 [1편] 프로젝트 환경 설정 프로젝트 생성 Spring boot(IntelliJ-ultimate 버전이 아니면 스프링 부트 스타터를 사용 -> https://start.spring.io) 사용 기능(라이브러리) : 1. Lombok 2. Spring Boot DevTools 3. Spring Web 4. Thymeleaf 5. Spring Data JPA 6. Querydsl (프로젝트 생성시 따로 선택이 불가능하며 maven에서 가져와 수작업으로 build.grade에 넣어줘야함) 7. MariaDB 8. BootStrap 프로젝트 설정 Name : Guestbook Group : org.zerock JDK : Java11 Laanguage : Java Type : Gradle Packge : War build.. 2022. 5. 20.