무회 Blog

java, jdbc 연결 샘플 본문

Java

java, jdbc 연결 샘플

sucun 2025. 6. 22. 18:57

1, jdbc <> ojdbc8.jar  연결해서 테스트 (db.properties 파일 연결테스트는 아래2번 참고) 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;

/*
참고내용 : 
1, JAVA 프로젝트 생성  
2, OJDBC8.jar  준비 
3,  생성한 프로젝트 우클릭 >>  Properties >> Java Build Path >> Libraries >> Add External Jars 버튼 클릭 >> ojdbc8.jar 추가 
4, java jdk >> 1.8 버전인지 확인 
5, 아래 소스 main 클래스에 작성후 DB 연결 테스트 
6, url 에서 : SID 혹은 , 서비스방식 2가지 방식이 있는데 , 요즘은 서비스 방식이 확장성이 있으며 오라클에서 권장 
참고 : 드라이브://호스트:포트/서비스명 
*/

public class JdbcExample {
    public static void main(String[] args) {
        // Oracle JDBC 드라이버 클래스
        String driver = "oracle.jdbc.driver.OracleDriver";

        // 접속 정보 (사용자에 맞게 변경하세요)
//        String url = "jdbc:oracle:thin:@//localhost:1521:XE";  // XE 기준    <-- SID 방식  , 차이(:XE)
        String url = "jdbc:oracle:thin:@//localhost:1521/XEPDB1";  // XE 기준  <-- 서비스 방식 , 차이(/XEPDB1) 
        String user = "hr";  
        String password = "1234";

        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            // 1. 드라이버 로드
            Class.forName(driver);

            // 2. DB 연결
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("DB 연결 성공!");

            // 3. Statement 생성
            stmt = conn.createStatement();

            // 4. 쿼리 실행
//            String sql = "SELECT EMPNO, ENAME, JOB FROM EMP";  // 예: EMP 테이블 조회
            String sql = "SELECT ID, AGE, CONTENT FROM USERS ";  // 예: USERS 테이블 조회
            rs = stmt.executeQuery(sql);

            // 5. 결과 처리
            while (rs.next()) {
                int empno = rs.getInt("ID");
                String ename = rs.getString("AGE");
                String job = rs.getString("CONTENT");
                System.out.println(empno + " | " + ename + " | " + job);
            }

        } catch (ClassNotFoundException e) {
            System.out.println("JDBC 드라이버 로드 실패: " + e.getMessage());
        } catch (SQLException e) {
            System.out.println("SQL 예외 발생: " + e.getMessage());
        } finally {
            // 6. 자원 해제 (꼭 닫아야 함)
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 

2, db.properties 파일 연결해서 테스트 

, java 파일 

 , db.properties 파일 

 

, db.properties 파일 소스 

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@//localhost:1521/XEPDB1
jdbc.username=hr
jdbc.password=1234

, java 파일 소스 

package main.java;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JdbcExample {

	public static void main(String[] args) {
		Properties props = new Properties();

        try (InputStream input = JdbcExample.class.getClassLoader().getResourceAsStream("db.properties")) {
            if (input == null) {
                System.out.println("Properties 파일을 찾을 수 없습니다.");
                return;
            }
            // properties 파일 읽기
            props.load(input);

            // properties에서 값 가져오기
            String driver = props.getProperty("jdbc.driver");
            String url = props.getProperty("jdbc.url");
            String user = props.getProperty("jdbc.username");
            String password = props.getProperty("jdbc.password");

            // 드라이버 로드
            Class.forName(driver);

            // DB 연결
            try (Connection conn = DriverManager.getConnection(url, user, password);
                 Statement stmt = conn.createStatement()) {

                System.out.println("DB 연결 성공");

                String sql = "SELECT ID, AGE, CONTENT FROM USERS ";
                try (ResultSet rs = stmt.executeQuery(sql)) {
                    while (rs.next()) {
                        System.out.println(rs.getInt("ID")
                        		+ " | " + rs.getString("AGE")
                        		+ " | " + rs.getString("CONTENT"));
                    }
                }
            }



        } catch (IOException e) {
            System.out.println("Properties 파일 읽기 오류: " + e.getMessage());
        } catch (ClassNotFoundException e) {
            System.out.println("JDBC 드라이버 로드 실패: " + e.getMessage());
        } catch (SQLException e) {
            System.out.println("SQL 오류: " + e.getMessage());
        }
	}

}

 

반응형
Comments