일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- Vo
- oracle db
- o(log n)
- DEFAULT
- JavaSwing
- DATABASE
- DAO
- C#접근제한자
- 데이터베이스
- break
- 자바
- 메이븐업데이트
- DB 제약조건
- O(n)
- DTO
- oracle developer
- mvc디자인패턴
- JSP
- 자바연산자
- DB
- 접근제한자
- C#접근제어자
- C언어 표준 라이브러리
- 빅오표기법
- sql
- Oracle SQL Developer
- Oracle
- 오라클
- java접근제어자
성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و
JDBC Connection 본문
1103 수업내용_
package database;
public class J01_JdbcConnection {
/*
# JDBC (Java Database Connectivity)
- 자바에서 데이터베이스에 접속하여 쿼리문을 전달하고 결과를 얻어오는 기능들이 구현되어 있는 API
- 다양한 종류의 DB와 연결할 수 있다
- 어떤 DB와 연결하더라도 항상 JAVA쪽 소스코드는 동일하게끔 설계
-> Java에는 인터페이스만 존재하고 실제 구현은 각 DB회사에게 미룸
# OJDBC (Oracle JDBC)
- Oracle 데이터베이스가 JDBC API와 소통하기 위해 만들어놓은 라이브럴
- 오라클 데이터베이스 또는 SQLDeveloper 설치 폴더에 포함되어 있다
# 외부의 라이브러리 프로젝트에 포함시키기
- 프로젝트 우클릭 -> Properties -> Java Build Path -> Libraris 탭 -> modulepath에 Add External JARs..
탐색기를 열어서 1번 또는 2번으로 진행
1번 : C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
>>
또는
2번 : C:\JavaFullstack_hm\DataBase\sqldeveloper\jdbc\lib
프로젝트에서 위의 ojdbc11.jar을 불러다 사용해야한다.
ADD External JARs… -> 2번에서 찾은 아이를 등록한다
apply and close
그럼 이렇게 생성됨
이 안에 들어있는 클래스들을 사용하게 될 것이다.
*/
public static void main(String[] args) {
// JDBC API의 사용절차
//1. Class.forName()으로 각 회사의 JDBC 드라이버를 한번 로드한다.
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
// 오라클 패키지 > jdbc 패키지 > 드라이버 패키지 >OracleDriver 실행시키는것
++>>
"jdbc:oracle:thin:@localhost:1521:XE"; // localhost 자리는 127.0.0.1이 들어갈 수 있다 >>
"127.0.0.1"은 네트워크 통신에서 사용되는 루프백 주소로 "localhost"라고도 불립니다. 이 주소는 동일한 호스트(즉, 현재 작업 중인 컴퓨터)에 대한 네트워크 연결을 설정하는 데 사용됩니다. 이를 통해 애플리케이션은 동일한 기기에서 실행 중인 네트워크 서비스와 통신할 수 있습니다. "localhost" 또는 "127.0.0.1"을 URL의 호스트로 사용할 때 네트워크를 통한 통신이 아니라 로컬 머신 내에서 통신이 이루어집니다.
예를 들어, 제공된 JDBC URL("jdbc:oracle:thin:@localhost:1521:XE")은 코드가 실행되는 동일한 컴퓨터에서 실행 중인 Oracle 데이터베이스에 연결을 설정하는 것을 나타냅니다. 1521은 포트 번호를 나타내며 XE는 Oracle 서비스 이름입니다.
출처: <https://chat.openai.com/c/0820cea0-ab94-4f29-af65-2762847654bb>
System.out.println("클래스 로딩 성공!");
} catch (ClassNotFoundException e) {
System.out.println("클래스 이름이 틀린 것 같습니다.");
e.printStackTrace();
}
//2. DriverManager 클래스를 통해 DB에 접속한다 (새 워크시트 접속과 같음)
DriverManager.getConnection("");
//"" 부분에 -> sqlDeveloper 에서 주소와 아이디, 비밀번호등등 가져다 쓰는 것
==>
try {
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE", "hr", "1234");
// sqlDeveloper 에서 주소를 가져다 쓰는 것
// 워크시트 시작 부분
System.out.println("연결성공!" + conn);
conn.close();
// 사용이 끝난 연결은 반드시 접속을 해제해야 한다
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
==>
//2. DriverManager 클래스를 통해 DB에 접속한다 (새 워크시트 접속과 같음)
try {
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:XE", "hr", "1234");
// sqlDeveloper 에서 주소를 가져다 쓰는 것
// 워크시트 시작 부분
System.out.println("연결성공!" + conn);
//3. 생성된 conn인스턴스를 통해 쿼리문을 전달한다
// (해당 위치에서 쿼리문에 ;을 추가하면 에러가 발생하므로 주의)
//[3-1] 쿼리문 준비하기
String sql = "SELECT * FROM employees";
PreparedStatement pstmt = conn.prepareStatement(sql);
//[3-2] 준비된 쿼리문 실행하기 (DB로 전달하기)
// 해당 쿼리문의 실행결과는 Set형태로 반환된다
ResultSet rs = pstmt.executeQuery();
// HashSet의 그 Set 배웠던 Set이다
//[3-3] 받아온 결과 사용하기
//rs.next() : 커서를 다음행을 넘긴후 true반환. 더 읽을게 없으면 false 반환
while(rs.next()) {
System.out.printf("%s %s / %d\n",
rs.getString("first_name"),
rs.getString("last_name"),
rs.getInt("salary")
);
}
// 사용이 끝난 객체를 열었던 반대의 순서로 닫는다.
rs.close();
pstmt.close();
// 사용이 끝난 연결은 반드시 접속을 해제해야 한다
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
이런식으로 db에 있는 정보를 가져올 수 있다.
}
}
'백엔드개발 > JDBC' 카테고리의 다른 글
Meta data (1) | 2023.11.13 |
---|---|
Transaction (0) | 2023.11.13 |
Execute Update (0) | 2023.11.13 |
Prepare Statement (0) | 2023.11.13 |
Select QUIZ / DB로부터 모든 사원의 사번/이름/부서명/직책명 읽어 파일형태로 저장하기 / (0) | 2023.11.13 |