일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모두의 파이썬
- 거북이 대포 게임
- intellij
- react
- spring-boot
- props
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- 리액트
- Colaboratory 글자 깨짐
- 웹 게임을 만들며 배우는 리액트
- 따라하며 배우는 노드 리액트 기본 강의
- 노드에 리액트 추가하기
- Do it 자바스크립트 + 제이쿼리 입문
- DB Browser
- 타자 게임 만들기
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- 인프런
- googleColaboratory
- 자바스크립트
- node.js 설치
- Spring-Framework
- vs code 내 node
- 모던자바스크립트
- react오류
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- Concurrently
- node.js로 로그인하기
- 계산맞추기 게임
- JS 개념
- Python
- Today
- Total
프로그래밍 삽질 중
JDBC 설명 및 예제 1) 본문
<현재 자바 프로그래밍 실습 환경>
- 데이터베이스 프로그램 : 오라클 18c
- 자바 컴파일러 JDK 버전 11
- 데이터베이스와 자바를 연결하는 드라이버 JDBC 드라이버(파일이름 ojdbc8.jar)
※ JDBC
드라이버 로드 - 객체 생성
- 관계형 데이터베이스에 저장된 데이터를 접근 및 조작할 수 있게 하는 API
- 다양한 DBMS애 대해 일관된 API로 데이터베이스 연결, 검색, 수정, 관리 등으로 할 수 있게 함
※ JDBC 드라이버
- DBMS마다 고유한 JDBC 드라이버 제공,
JDBC 드라이버와 DBMS는 전용 프로토콜로 데이터베이스 처리
※ JDBC 드라이버 매니저
- 자바 API에서 지원하며 JDBC 드라이버 로드
※ 데이터베이스 접속 자바 클래스 (소스코드)
- 오라클 DBMS내 데이터베이스에서 자바의 데이터베이스 연동 객체
- Class : <클래스이름>의 JDBC 드라이버 로딩
- DriverManager : 데이터베이스 Connection 객체 생성
- Connection
1) SQL문을 실행하는 Statement 객체 생성(Statement createStatement())
2) Connection 객체 연결을 종료(void close())
- Statement
1) SQL문을 실행해서 ResultSet 객체를 생성(ResultSet executeQuery(String sql))
2) INSERT/DELETE/UPDATE문을 실행해서 ResultSet 객체 생성 (ResultSet executeUpdate(String sql))
- ResultSet
* SQL문 실행 결과를 얻어오기(Fetch( 위해서 ResultSet 클래스 필요
* 현재 데이터의 행(레코드 위치)를 가리키는 커서(cursor)를 관리
* 커서 초기값은 첫 번쨰 행 이전을 가리킴
1) 결과 테이블에서 커서가 처음 투플을 가리킴(boolean first())
2) 결과 테이블에서 커서가 다음 투플을 가리팀(boolena next())
3) int가 가리키는 열 값을 정수로 반환(int getInt(<int>)
4) int가 가리키는 열 값을 문자열로 반환(String getString(<int>)
※ 주로 사용하는 메소드
- ResultSet executeQuery(String sql) : 특별히 SQL 구분하지 않고 DML(delete, update, insert),
Query(select), DDL(create, drop) 등 수행
- executeQuery() : 데이터 검색
- executeUpdate() : 추가, 수정, 삭제
[예제 1] - 자바(이클립스)와 SQL 연결하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCEX1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
System.out.println("DB 연결 완료");
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 2] - CAFE 테이블의 모든 내용 출력
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
32
33
34
35
36
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCEx2_1 { //CAFE 테이블의 모든 내용 출력
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt2 = conn.createStatement();
ResultSet rs2 = stmt2.executeQuery("select * from cafe");
while(rs2.next()) { //출력값 넣는 것 잊지 말기
System.out.print(rs2.getString("CAFEID"));
System.out.print(rs2.getString("CAFENAME"));
System.out.print(rs2.getString("CORPORATION"));
System.out.println(rs2.getString("PRICE"));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 3] - 특정 열(CAFENAME, PRICE)만 검색하기
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
32
33
34
35
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCEx3_1 {//특정 열(cafename, price)만 검색
//
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt3 = conn.createStatement();
ResultSet rs3 = stmt3.executeQuery("select cafename, price from cafe");
while(rs3.next()) { //출력값 넣는 것 잊지 말기
System.out.print(rs3.getString("cafename"));
System.out.println(rs3.getString("price"));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 4] - 조건 검색하기(CAFEID가 50인 내용)
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
32
33
34
35
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCEX4_1 {//조건 검색(CAFEID가 50인 내용 검색
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt4 = conn.createStatement();
ResultSet rs4 = stmt4.executeQuery("select CAFEID, CAFENAME from CAFE "
+ "where CAFEID = 50");
while(rs4.next()) { //출력값 넣는 것 잊지 말기
System.out.print(rs4.getString("CAFEID"));
System.out.println(rs4.getString("CAFENAME"));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 5] - (예제4와 동일) cafe 테이블의 이름이 "이디야인"인 카페 데이터를 출력하기
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
32
33
34
35
36
37
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCEx5_1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt5 = conn.createStatement();
ResultSet rs5 = stmt5.executeQuery("select * from cafe " + //줄 바꿈 시 띄어쓰기
"where cafename = '이디야'");
while(rs5.next()) {
System.out.print(rs5.getString("cafeid"));
System.out.print(" " + rs5.getString("cafename"));
System.out.print(" " + rs5.getString("corporation"));
System.out.println(" " + rs5.getString("price"));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 6] - 레코드 추가, 수정, 삭제
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCEx6_1 {//레코드 추가, 삭제
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
Statement stmt6 = conn.createStatement();
//레코드 추가
//stmt6.executeUpdate("INSERT INTO CAFE VALUES"
// + "("+45+", \'쥬씨\', \'쥬씨주식회사\', "+2000+")");
//데이터 수정
//stmt6.executeUpdate("update CAFE set cafename = '커피베이' where cafeid =45");
//ResultSet rs6 = stmt6.executeQuery("select * from cafe");
//데이터 삭제 - 안 될경우 SQL의 트리거에서 오류 삭제
stmt6.executeUpdate("delete from cafe where cafename = '커피베이'");
ResultSet rs6 = stmt6.executeQuery("select * from cafe");
while(rs6.next()) {
System.out.print(rs6.getString("cafeid"));
System.out.print(" " + rs6.getString("cafename"));
System.out.print(" " + rs6.getString("corporation"));
System.out.println(" " + rs6.getString("price"));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
'과거 프로그래밍 자료들 > SQL(Oracle)' 카테고리의 다른 글
SQL 예제문제 (2) (0) | 2021.03.26 |
---|---|
JDBC 설명 및 예시 2) (0) | 2021.03.26 |
SQL 커서 설명 및 예제 (0) | 2021.03.24 |
SQL PL/SQL 설명 및 예제 (0) | 2021.03.23 |
SQL 트랜잭션, 세션, 사용자 관리 설명 및 예제 (0) | 2021.03.23 |