JAVA라이브러리 JAP DB를 쿼리를 안적고 쓸수있는 라이브러리가있다?

2022. 7. 13. 11:06카테고리 없음

728x90

안녕하세요 JAVA 의 꿀팁 데이터 베이스를 굳이 연결하고 table 만들려면 들어가야하고  

또 똑같이 맨날 insert 문적고 select 적고 그귀찬은 것을 다해주는 라이브러리 입니다

글로 보면 이해 하기 어렵더라고요 그래서 최대한 필요한것들만 뽑았습니다 

안보면 평생후회함

 

일단 두가지의 설정이 필요합니다

메이븐 pom.xml 에 설정을 해줍니다 

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

 

그리고 application.properties 에 설정을 해준다

spring.jpa.hibernate.ddl-auto=create
#spring.jpa.hibernate.ddl-auto=none 
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
spring.jpa.database=oracle
logging.level.org.hibernate=info
spring.jpa.database-platform=org.hibernate.dialect.OracleDialect

 

이렇게 설정을 해주면 기본적인 준비는 끝났다 이제 본격적으로 사용해보려고 한다 

Entity 클래스를 만들어줘야한다  클래스는 그냥 아무렇게나 만들어 도 된다 

만들어줄 테이블의 이름 을 지정하는 어노테이션과 Entity class 라고 지정해주는 어노테이션을 붙혀야한다 

이렇게 지정해준다 class 이름을 User 이라고 적은 이유는 사람의 정보를 담을 Table 를 만들거여서 나중에 알아보기 쉽게

 User 라는 Class 라는 이름으로 만들었다 .

테이블의 컬럼들을 지정해줄떄 그냥 자바에서 변수 선언 하듯이 선언하면 된다 

이렇게 말이다 나는 PK로 할수있는 num 과 이름과 email 정도 지정했다 그러고 보니 테이블을 만들려고보니 num을 어떻게 PK로 지정해주지 지정했다한들 시퀀스 사용하려고 하는데 어떻게 사용하지 ? 라는 생각이 들었다 

방법이있다 

이렇게 해주면된다 ID는 PK라고 선언한것 이다 시퀀스를 사용할것이라고 지정해준후에 시퀀스를 만들것이다

이게 왜이렇게 되지? 라고 생각하는것보다 자바의 공식 방법이니까 아 이건 만드는거고 이건 시퀀스를 지정하는것이고

이건 pk 라고 선언 하는 것이구나 라고 편하게 생각하면된다  

( 그리고 까먹은이야기인데 꼭 setget  을 만들어줘야 한다)

 

이정도면 기본적이게 쓸수있는  table 를 만들었다 그리고 여기서 끝이아니다 마지막으로 해줘여할게 있다

인터페이스를 만들어줘야한다 Class이름은 자기가 알아볼수있도록 하면된다

 나는 UserRepostitory 라는 인터페이스를 만들어 JPA 표준 인  JpaRepository를 상속 받았다 왜 이걸 상속 받아야하지?

라고 궁금해 하지말아라 이건 그냥 형식적이다,,지금봐도 나도 이해가 안돤다 

(여기서 인터페이스는 그냥 클래스만 구현하는 것으로 알고있습니다 근대어떻게 구현 하는 임플리먼트가아니라

상속인 익스텐드 를  사용하죠 라고 정당한 질문을 할수있다  사실 클래스는 인터페이스 상속하지 못한다

하지만 인터페이스와 인터페이스 끼리는 상속이 가능 하다 )

옆 제네릭에 아까만든 클래스이름과 내가 id라고 지정했던 pk의 타입을 지정해주면 끝이다 

 

 

이제 Controller 에서 지금 까지만든 jap 를 사용해보겠다 

방금만든 인터페이스의 의존성을 주입해주고 한번 확인해보려고 로그를 만들었다

우리가 테이블이라고 만들었던 객체를 만들어준다 그후에 자신이 만든 컬럼에 넣고싶은DATA를 만들어서

 SET을 해준후에 아까만든 인터페이스의 점을 찍어 SAVE 라는 메소드의 만들려고 헀던 객체 를 집어 넣어주면 된다

반환값은 저장했던 객체를 반환한다 

 

이렇게 알아볼수있다  마지막 의심이 많은 사람을위해서 sql  Developer 에 들어가서 확인해보겠다

이렇게 들어갈수있다 만드는건 귀찬지만 한번만들면 계속 쓸수있다는 장점이있다  

근대 장점이있다면 단점이있다 LIKE 처럼 쪼금 이라도 복잡한 쿼리를 만나면 

JPA 는 해결하지못한다 기본적인것만 할수있으며 Mybatis 를 사용해야한다 

 

 

하지만 모니터가 한개인 난 sql을 켜놓고 db에데이터 마주고 이름 맞추고 쿼리문이 맞는 지  sql  Developer에가서

문법도 확인해본다 아무리 간단한 것이여도 그런다 그래서 그냥 간단하게 이러게 만들수있다는게 너무편하다 

포스팅 END

728x90