본문 바로가기

전체 글83

Jpa로 게시물(1) 기존에 스프링 Legacy만 이용하다가 스프링 부트도 해보고 싶고 JPA도 해보고 싶고 인텔리j도 사용해보고싶어서 공부도 할 겸 공부하면서 익혀가면서 작성해보겠습니다. 먼저 와 같이 해서 생성을 해준 뒤, application.properties server.port = 8081 # db설정 spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.username=[] spring.datasource.password=[] # JPA spring.jpa.hibernate.ddl-auto=create(후에 up.. 2021. 5. 25.
JPA/Dto?Entity? JPA를 공부하면서 다른 사람들의 예제를 보면서 공부를 하는데 누군가는 Dto를 사용하고 누군가는 dto를 사용을 안 하는 것에서 음...? 했는데 Entity Dto 데이터베이스와 서로 교류하는 객체 view와 교류 하는 객체 라고 한다. Entity의 경우에는 데이터베이스와 매핑되는 객체로 변경이 자주 일어나서는 안된다. 변경이 자주 일어나게 된다면? 여러 클래스에 영향을 미치게 된다. 그래서 Dto를 사용하여 해결을 한다고 한다. 단점으로는 많은 클래스 생성을 하게 된다는 점이다. 공부가 조금 더 필요하지만 Entity가 데이터베이스와 직접적으로 매핑 되기에 건드리면 안되기에 Service , Controller , View에서 Dto를 이용하여 데이터를 전달한다 정도로 일단 이해했다. 2021. 5. 22.
JPARepository JpaRepository vs CrudRepoistory crud의 경우 정말 기본적인 create , read , update , delete의 기능들을 지원 한다. JPARepository는 JPA에 특화된 것으로 Crud기능에서 페이징,정렬 등의 기능을 지원한다. 그리고 JPARepository에서 지원하는 기본적인 crud는 method 기능 save() insert, update findOne() 기본키로 한 개의 정보를 찾음 findAll() 전체 (list) count() 갯수 delete() 삭제 와 같이 되어 있다. 그런데 만약 본인이 필요로 하는 기능이 없다? 하면 새로 선언을 해주면 되는데 이 경우 규칙을 지켜서 선언해준다. method 기능 findBy로 시작 where 절을 추가해.. 2021. 5. 21.
JPAEntity JPA에 대해서 공부하고 있는데 워낙에 할게 많아서 미리미리 조금씩 정리를 해둬야겠다? 라고 생각해서 포스팅을 해야겠다~ 라고 생각했습니다. JPA에서는 mapper가 아닌 entity 즉 객체를 이용하여 데이터베이스와 매핑한다. @Entity//DB와 매핑할 객체임을 알려준다. @Table(name = "USERTABLE")//클래스이름과 테이블의 이름이 다른경우 Table로 따로 선언 @NoArgsConstructor(access = AccessLevel.PROTECTED)//안전한 객체 생성을 위해서, 접근 제어 @Getter @ToString @SequenceGenerator(name = "User_Seq_Generator",sequenceName = "User_seq",initialValue =.. 2021. 5. 21.
스프링 정리(3) spring.jpa.hibernate.ddl-auto = update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가한다. validate : 엔티티와 테이블이 정상적으로 매핑되어있는지만 검증한다. create : 기존에 존재하는 스키마를 삭제하고 새로 생성한다. create-drop : 스키마를 생성하고 애플리케이션이 종료될 때 삭제한다. none : 초기화 동작을 하지 않는다. spring.jpa.generate-ddl 은 위의 spring.jpa.hibernate.ddl-auto 속성을 사용할지 말지를 결정하는 옵션이다. 기본값이 false이고 JPA에 의한 자동 초기화 기능을 사용하려면 true로 바꾸고 사용한다. spring.jpa.show-sql 를 true로 하면 JPA가 생성.. 2021. 5. 20.
스프링 정리 2 Mybatis vs JPA MYbatis를 떠올리면 mapper/beans/dao/service/controller 이렇게 되며 개발자가 직접 SQL쿼리문을 작성하여 데이터베이스와 연결 시켜준다. 이와 다르게 JPA(자바의 API) 즉 ORM 객체-관계 매핑은 객체를 통하여 간접적으로 DB를 다룬다.(SQL문을 자동으로 Mapping해 줌) 그리고 이를 구현하기 위하여 Hibernate가 주로 사용 되어진다. 이를 이용하여 개발자는 쿼리문을 작성할 필요없이 코드만 작성하면 된다. 단, JPA에 대한 깊은 공부가 필요 또한 조인의 경우 복잡해진다. 하지만 자바의 객체지향과 가잘 잘 맞는다고 한다. 2021. 5. 20.