본문 바로가기

Back-End44

[팀프로젝트] - ERD 제작 2022. 6. 17.
[spring boot] 간단한 방명록 만들기 [2편] DTO > Entity 변환 서비스 계층에서는 파라미터를 DTO 타입으로 받기 때문에 이를 JPA로 처리하기 위해서는 entity 타입의 객체로 변환해야 한다. GeustbookService public interface GuestbookService { //글등록 Long register(GuestbookDTO dto); //DTO를 Entity로 변환 default Guestbook dtoToEntity(GuestbookDTO dto){ Guestbook entity = Guestbook.builder() .gno(dto.getGno()) // java 8버전부터는 인터페이스의 실제 내용을 갖는 .title(dto.getTitle()) // 코드를 default라는 키워드로 생성할 수 있다. .con.. 2022. 6. 16.
[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.