레이블이 JPAQuerydsl인 게시물을 표시합니다. 모든 게시물 표시
레이블이 JPAQuerydsl인 게시물을 표시합니다. 모든 게시물 표시

2022년 1월 15일 토요일

[자바스프링동영상강의]7.4 Querydsl SQL Query with Oracle, JPA Querydsl 오라클 실습, JPA교육동영상, 자바학원, 스프링학원, JAVA학원, Spring학원

 [자바스프링동영상강의]7.4 Querydsl SQL Query with Oracle, JPA Querydsl 오라클 실습, JPA교육동영상, 자바학원, 스프링학원, JAVA학원, Spring학원







7.4 Querydsl SQL Query with Oracle, JPA Querydsl 오라클 실습

 

1. 프로젝트 생성

File > New > Spring Starter Project >

프로젝트 명: scaffolding-querydsl-sql-query-with-oracle > Next >

디펜던시 선택: Lombok, JPA, Web > Finish


2. 오라클 데이터베이스 연결 드라이버 디펜던시 설정 추가

pom.xml

<dependencies>

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>11.2.0.3</version>

</dependency>

</dependencies>


<repositories>

<repository>

<id>oracle</id>

<name>ORACLE JDBC Repository</name>

<url>https://maven.oracle.com;

</repository>

</repositories>


3. 프로젝트 환경 설정

application.properties

# DATASOURCE

spring.datasource.platform=oracle

spring.datasource.sqlScriptEncoding=UTF-8

spring.datasource.url=jdbc:log4jdbc:oracle:thin:@192.168.0.225:1521:orcl

spring.datasource.username=scott

spring.datasource.password=1234

spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

spring.datasource.initialize=false


# JPA

spring.jpa.hibernate.ddl-auto=none

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect

spring.jpa.show-sql=true

spring.data.jpa.repositories.enabled=true


# Logging

logging.config=classpath:logback-spring.xml

4. 프로젝트 로깅 설정

부록 7.2.4 와 동일합니다.


5. 엔티티 클래스 생성 대신 테이블 생성

따로 테이블을 생성하지 않고 SCOTT 계정으로 이미 존재하는 테이블을 대상으로 학습 해 보겠습니다. 


6. Q 타입 클래스 생성을 위한 디펜던시 설정


pom.xml

<properties>

<querydsl.version>4.1.2</querydsl.version>

</properties>


<dependencies>

<dependency>

<groupId>com.querydsl</groupId>

<artifactId>querydsl-sql</artifactId>

<version>${querydsl.version}</version>

</dependency>


<dependency>

<groupId>com.querydsl</groupId>

<artifactId>querydsl-sql-spring</artifactId>

<version>${querydsl.version}</version>

</dependency>


<dependency>

<groupId>com.querydsl</groupId>

<artifactId>querydsl-sql-codegen</artifactId>

<version>${querydsl.version}</version>

<scope>provided</scope>

</dependency>

</dependencies>


<build>

<plugins>
<plugin>

<groupId>com.querydsl</groupId>

<artifactId>querydsl-maven-plugin</artifactId>

<version>${querydsl.version}</version>

<executions>

<execution>

<goals>

<goal>export</goal>

</goals>

</execution>

</executions>

<configuration>

<jdbcDriver>oracle.jdbc.driver.OracleDriver</jdbcDriver>

<jdbcUrl>jdbc:oracle:thin:@192.168.0.225:1521:orcl</jdbcUrl>

<jdbcUser>scott</jdbcUser>

<jdbcPassword>1234</jdbcPassword>

<packageName>com.example.employee.model</packageName>

<exportView>false</exportView>

<schemaPattern>SCOTT</schemaPattern>

<tableNamePattern>DEPT,EMP</tableNamePattern>

<targetFolder>target/generated-sources/java</targetFolder>

<namePrefix>Q</namePrefix>

<exportBeans>true</exportBeans>

</configuration>

<dependencies>

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>11.1.0.7.0</version>

</dependency>

</dependencies>

</plugin>

</plugins>

</build>


tableNamePattern을 대문자로 설정해야 합니다.


7. Q 타입 클래스 생성

만약 작업 중 프로젝트에 빨간 x 표시가 보이면 다음 작업을 수행합니다.

프로젝트 선택 > 마우스 오른쪽 클릭 > Maven > Update Project… > 대상 프로젝트 확인 > OK


Q 타입 클래스를 생성하기 위해서 다음 작업을 수행합니다.

프로젝트 선택 > 마우스 오른쪽 클릭 > Run AS > Maven generate-sources 


작업결과 프로젝트 구조

프로젝트 선택 > 새로고침 > target/generated-sources/java 폴더 확인


8. SQLQueryFactory 빈 설정

SQLQueryFactory를 빈으로 등록해 놓고 필요할 때 DI받아서 사용하면 편리합니다.

QuerydslSqlQueryConfig.java

package com.example.common.config;


import java.sql.Connection;


import javax.inject.Provider;

import javax.sql.DataSource;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;


import com.querydsl.sql.Configuration;

import com.querydsl.sql.MySQLTemplates;

import com.querydsl.sql.SQLQueryFactory;

import com.querydsl.sql.SQLTemplates;

import com.querydsl.sql.spring.SpringConnectionProvider;

import com.querydsl.sql.spring.SpringExceptionTranslator;



@org.springframework.context.annotation.Configuration

public class QuerydslSqlQueryConfig {


@Autowired

private DataSource dataSource;


@Bean

public Configuration configuration() {

SQLTemplates templates = OracleTemplates.builder().build();

Configuration configuration = new Configuration(templates);


configuration.setExceptionTranslator(new SpringExceptionTranslator());

return configuration;

}


@Bean

public SQLQueryFactory queryFactory() {

Provider<Connection> provider = new SpringConnectionProvider(dataSource);

return new SQLQueryFactory(configuration(), provider);

}

}


#Querydsl, #JPAOracle, #JPAQuerydsl, #JPA오라클, #JPA, #JPA교육, #자바교육, #스프링교육, #자바학원, #오라클학원, Querydsl, JPAOracle, JPAQuerydsl, JPA오라클, JPA, JPA교육, 자바교육, 스프링교육, 자바학원, 오라클학원 

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...