안정화 버전(Last Stable)을 설치합니다
다운로드한 H2 압축을 해제한 후
1) h2/bin 파일에 h2.sh 파일 실행 권한을 chmod 755로 변경합니다
2) 그리고 h2 스크립트 파일을 실행시킵니다
스크립트를 실행하면 브라우저가 화면에 나타납니다.
URL 주소에 host 부분을 localhost로 변경해서 호출합니다
http://localhost:8082/login.jsp?jsessionid=a24a6eaf3e883d52f167b308bbedb95f
h2 접속창이 표시가 되면
파일 모드로 1회 접속하여 데이터베이스를 생성합니다
여기서 JDBC URL 주소를 사용하여 접속합니다
JDBC URL : jdbc:h2~/querydsl
데이터베이스 접속된 것을 확인합니다
데이터베이스 경로에 mv.db 파일이 생성된 것을 확인하실 수 있습니다
데이터베이스 연결을 끊고
브라우저와 애플리케이션에서 동시에 접근하기 위해
TCP 방식으로 다시 연결합니다
TCP URL : dbc:h2:tcp://localhost/~/Install/h2/localdb/querydsl
여기까지 완료되었다면 어플리케이션에 H2 데이터베이스만 설정하여
실행시키면 H2 데이터베이스를 이용할 수 있습니다
(h2 데이터베이스 생성 확인 참고)
~/ 로컬 경로에 microservice라는 h2 데이터베이스를 생성하고 싶다면
첫 번째 연결은 JDBC 방식으로 데이터베이스 생성 : jdbc:h2:~/microservice
이후 부터는 TCP 방식으로 브라우저에서 연결 : jdbc:h2:tcp://localhost/~/microservice
어플리케이션에 실행 :
spring.datasource.url=jdbc:h2:tcp://localhost:9092/mem:microservice
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/Install/h2/localdb/querydsl
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create-drop
properties:
hibernate:
show_sql: true
format_sql: true
logging.level:
org.hibernate.SQL: debug
어플리케이션을 실행시킵니다
2021-12-11 18:49:39.022 INFO 50120 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-12-11 18:49:39.031 INFO 50120 --- [ main] c.t.querydsl.QuerydslApplication : Started QuerydslApplication in 2.351 seconds (JVM running for 2.862)
ddl-auto 설정을 create-drop로 설정했기 때문에
어플리케이션 작성한 Entity 클래스가 테이블로 생성된 것을 확인하실 수 있습니다
테이블에 insert 되는지 테스트 코드를 통해 확인하실 수 있습니다
@SpringBootTest
@Transactional
@Commit
class QuerydslApplicationTests {
@Autowired
EntityManager entityManager;
@Test
public void 프로젝트_QUERY_DSL_설정_성공_테스트() {
Customer customer = new Customer();
entityManager.persist(customer);
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
QCustomer qCustomer = new QCustomer("hello");
Customer selectedCustomer = queryFactory
.selectFrom(qCustomer)
.fetchOne();
Assertions.assertThat(selectedCustomer).isEqualTo(customer);
}
}
참고 1)
Test 환경에서는 생성된 테이블이 drop 되지 않도록 ddl-auto 옵션값을 create로 변경합니다
ddl-auto: create
참고 2)
실행된 쿼리에 '?' 값을 확인할 수 있도록 설정할 수 있습니다
1) org.hibernate.type: trace를 추가합니다
logging.level:
org.hibernate.SQL: debug
org.hibernate.type: trace
여기서 조금 더 편리하게 볼 수 있도록
p6spy-spring-boot-starter 라이브러리를 추가합니다
2) p6spy-spring-boot-starter 라이브러리 추가 (선택사항)
(운영 환경에 추가되기 전에는 성능테스트 필요)
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.7.1'
추가해주신 다음 실행해보면 아래와 같이 '?' 표시가 대신
실제 입력되어진 값들이 표시되는 것을 확인하실 수 있습니다.
2021-12-11 19:31:34.312 INFO 56228 --- [ main] p6spy : #1639218694312 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/Install/h2/localdb/querydsl
insert into customer (id, email, gender, name, nickname, password, phone_number) values (null, ?, ?, ?, ?, ?, ?)
insert into customer (id, email, gender, name, nickname, password, phone_number) values (null, 'jun@gmail.com', 'M', 'Jun', 'j', '1234', '01099990000');
JWT, AuthenticationManager, JwtAuthenticationProvider (0) | 2024.02.16 |
---|---|
Springboot Querydsl 설정 (0) | 2021.12.11 |
Spring, Bean, IoC, DI 개념에 대한 정리 (0) | 2021.10.19 |
[JSP 연결] Spring Boot + Gradle + IntelliJ (0) | 2018.05.20 |
[개발환경] Spring Boot + Gradle + IntelliJ 프로젝트 생성하기 (0) | 2018.05.20 |
댓글 영역