티스토리 뷰

728x90

oracleXE112_Win64 설치

sql developer 다운 받아서 실행

디비애니라는 프로그램도 있음~

-- port 확인 하는 메서드
select dbms_xdb.gethttpport () from dual;

-- port 바꾸기~
exec dbms_xdb.sethttpport(9090);

-- 사용자 계정 생성
create user book_ex IDENTIFIED by book_ex
Default tablespace users -- 기본 테이블 스페이스는 users로 지정
temporary tablespace temp; -- 임시 테이블 스페이스는 temp로 지정

grant connect, DBA TO book_ex; -- 접속 권한과 DBA 관리자 권한 부여

-- C:\oraclexe\app\oracle\oradata\XE
-- DBF 파일 : 테이블 스페이스 사용 하는 파일
-- Users.DBF Users 테이블 스페이스

스프링에서 DB 설정

JDBC 연결 및 테스트

버전 확인은 항상 중요

pom.xml 에 해당 코드 추가

  <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
  <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0.4</version>
  </dependency>

Maven Dependencies에 ojdbc6 - 11.2.0.4 의존성 추가 됐는지 확인

잘 되는지 확인 -- Test에서 진행

package org.codehows.persistence;

import static org.junit.Assert.fail;

import java.sql.Connection;  
import java.sql.DriverManager;

import org.junit.Test;

import lombok.extern.log4j.Log4j;


@Log4j
public class JDBCTest {

    @Test
    public void testConnection() throws Exception {
        Class clz = Class.forName("oracle.jdbc.driver.OracleDriver");

        Connection con =
                DriverManager.getConnection(
                        "jdbc:oracle:thin:@localhost:1521:XE",
                        "book_ex", "book_ex");


        log.info(con);
        con.close(); //bad code 
        // finally로 클로주 해주는게 좋은 코드  

    }
}

해당 코드 추가 후 JUnit 으로 테스트 실행

83p 커넥션 풀 설정

DataSource 설정 -- HikariCP 88p

  • DB와 Connection을 맺고 끊는 작업은 리소스의 소모가 많은 작업
  • Pooling이라는 기법을 통해서 객체를 미리 생성하고 빌려 쓰는 방식으로 이용해서 연결 시간을 단축
  • Commouns DBCP
  • 커넥션 풀 있고 없고 차이는 매우 크다.
  • pom.xml 에 의존성 추가
  <dependency>
     <groupId>com.zaxxer</groupId>
     <artifactId>HikariCP</artifactId>
     <version>3.4.5</version>
  </dependency>
  • 추가 후 Maven Dependencies에서 의존성 추가 확인
  • root-context.xml에 추가
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
        <property name ="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>

        <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property>
        <property name="username" value="book_ex"></property>
        <property name="password" value="book_ex"></property>
    </bean>

    <bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
        <constructor-arg ref="hikariConfig"></constructor-arg>
    </bean>
  • 소스코드가 없으면 어노테이션을 걸지 못한다
  • 소스코드가 있으면 어노테이션을 사용하고, 소스코드 없으면 xml 설정을 사용
  • Test 코드 만들 때는 뒤에 s 붙이는게 미덕?..?
  • Test는 빨리 돌려서 결과를 확인
  • DataSource Test 진행
import static org.junit.Assert.fail;
import java.sql.Connection;
import javax.sql.DataSource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import lombok.Setter;
import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {

    @Autowired
    private DataSource ds;

    @Test
    public void testConnection() {

        try (Connection con = ds.getConnection()){

            log.info(con);
        }catch(Exception e) {
            e.printStackTrace();
            log.error(e.getMessage());
        }

    }
}
  • 데이터 베이스를 연결하고 싶으면 커넥션 풀을 쓰는게 좋다. 속도, 안정성 모든 면이 우수
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함