Spring

Spring _ SQL 연결 하기 [ 마지막에 Spring JDBC 설정 코드 작성 후 서버 먹통 문제 해결 ] _ 6일차

양빵빵 2022. 7. 13. 11:51

인텔리제이에 sql 연동 시키기

 

먼저 lib 폴더를 WEB-INF 폴더아래에 만든다.

 

 

c드라이브에서 oraclexe 폴더에서 ojdbc6.jar를 lib 폴더에 복사해준다.

 

 

 

 

 

 

 

 

 

 

 

 

ojdbc6.jar 복사 후 bulid.gradle에 들어가서 오라클 라이브러리 추가. 후 코끼리로 업데이트

 

// 오라클 라이브러리
implementation fileTree(dir: '/src/main/webapp/WEB-INF/lib', include: ['*.jar'])

 

 

test 폴더에 테스트 파일 만들기

 

 

 

 

 

package com.spring.webmvc;

import org.junit.jupiter.api.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBConnectTest {

    private String uid = "hr";
    private String upw = "hr";
    private String url = "jdbc:oracle:thin:@localhost:1521:xe";
    private String driver = "oracle.jdbc.driver.OracleDriver";

    @Test
    void connectTest() {

        try {
            Class.forName(driver);

            Connection conn = DriverManager.getConnection(uid, upw, url);

            String sql = "SELECT first_name FROM employees";

            PreparedStatement pstmt = conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();

            while (rs.next()) {
                System.out.println(rs.getString("first_name"));
            }

        } catch (Exception e) {

        }
    }
}

 

 

테스트 결과 

 

 

 

 

=== 7월 4일에 했던 Spring 쓰지 않고 데이터 베이스 활용해보기 참조.

 

package com.jdbc.basic;
   
  import java.sql.Connection;
  import java.sql.DriverManager;
   
  // Oracle DB 연결
  public class Connect {
  // 데이터 베이스 연결을 위한 정보 저장
   
  private final static String ACCOUNT = "sqld"; // 계정명 데이터 베이스 파일명
  private final static String PASSWORD = "1234"; // 비밀번호 [테스트를 위해 비밀번호를 틀리게 초기화]
   
  // 내가 사용할 데이터베이스가 어느 컴퓨터에 있는지 알려줘야 함.
  // 데이터 베이스의 위치정보(DB URL) - DB회사마다 패턴이 다름
  private final static String URL = "jdbc:oracle:thin:@192.168.25.18:1521:XE"; // 오라클에 DB URL 패턴을 확인 [찾아봐야함. 인터넷]
  // hr/hr : 계정명 / 계정 비밀번호 //localhost : 내 컴퓨터의 IP // 포트주소
  // localhost 데이터베이스가 클라우드에 있으면 클라우드 주소를 적어야 함.
   
  // 데이터베이스 접속에 쓸 드라이버 클래스 - DB회사마다 다름
  private final static String DRIVER = "oracle.jdbc.driver.OracleDriver"; // oracle.jdbc.driver. : 패키지명 OracleDriver : 클래스 이름
   
  // DB 연결 메서드
  public static Connection makeConnection() {
   
  try {
  // 1. 드라이버 클래스를 동적 로딩
  Class.forName(DRIVER);
   
  // 2. 연결정보를 담아 연결 객체를 생성
  Connection conn = DriverManager.getConnection(URL, ACCOUNT, PASSWORD);
  return conn;
  } catch (Exception e) {
  e.printStackTrace();
  return null;
  }
   
  }
   
   
  }

 

 

== > Spring JDBC 설정 코드 

 

//spring jdbc 라이브러리
implementation "org.springframework.boot:spring-boot-starter-jdbc"

 

dependencies 에 위의 코드 작성.

 

코끼리로 업데이트 한 후 WebmvcApplication 클래스로 서버를 실행 시키면 

실행이 되지 않는다.

 

spring은 db에 자동으로 접속해 주기 위한 설정정보를 요구한다. 설정이 되지 않아서 서버가 작동 되지 않는다.

 

 

==> spring에 db 설정 정보 등록하기

 

package com.spring.webmvc.config;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;

// 데이터베이스 연결 설정
@Configuration
@ComponentScan(basePackages = "com.spring.webmvc") // 자동 등록
public class DataBaseConfig {

    // 접속정보 객체 빈 등록 (DataSource 객체)
    @Bean
    public DataSource dataSource() {

        // 커넥션 풀: 데이터베이스 연결 객체를 모아둔 곳
        HikariConfig config = new HikariConfig();
        config.setUsername("sqld");
        config.setPassword("1234");
        config.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe");
        config.setDriverClassName("oracle.jdbc.driver.OracleDriver");

        return new HikariDataSource(config);
    }



}

 

==> 서버 재실행 

       데이터 베이스 문제가 있어서 계정 다시 만들어서 실행.

 

 

테스트 성공하면 새로만든 spring4 계정에 접속

 

==> 인텔리 제이로 돌아와서 수동 빈등록을 해제 해야 한다.

 

 

 

=> 수동 빈등록 해제

 

 

 

히카리콘피그 아이디 수정. 새로 만든 데이터베이스 계정으로 설정.

 

 

서버 실행 이상무!!