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 계정에 접속
==> 인텔리 제이로 돌아와서 수동 빈등록을 해제 해야 한다.
=> 수동 빈등록 해제
히카리콘피그 아이디 수정. 새로 만든 데이터베이스 계정으로 설정.
서버 실행 이상무!!