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());
}
}
}
반응형