JDBC
jdbc는 java databace connectivity로 자바에서 DB에 접근해 조작할 수 있게 도와주는 api 이다.
자신이 쓰는 DB에 맞는 jdbc를 받아야 하고,
나는 오라클을 써서 OJDBC를 다운 받았다.
오라클 홈페이지에서 로그인하고 자신의 JDK의 버전을 확인하고 받으면 된다.
나는 JDK 8 과 ojdc6이다.
▶ JDBC 실행 순서
- 드라이버 등록
- DB연결
- sql 실행
- 결과 리턴
- 종료
▶ JDBC 클래스 생성과정
- DriverManager
: Connection 인스턴스를 얻게 해주는 역할
-> getConnection( ) 메소드 이용해 Connection 생성
-> Class.forName( ) 메소드 통해 드라이버 로딩
- Connection
: Statement 객체를 얻게 해주는 역할
- Statement
: ReslutSet 을 얻게 해주는 역할 / 쿼리문 사용하기 위해 필요한 객체
-> createStatement( ) 메소드로 호출되어 생성됨
- PreparedStatement
->preparedStatement( ) 메소드로 호출되어 생성됨
- ResultSet
: 쿼리 수행 후 결과 담아주는 역할 / sql 결과 테이블을 담아줌
JDBCTemplate
우리가 dao에서
1. 드라이버 등록
2. DB연결
3. sql 실행
4. 결과 리턴
5. 종료
를 매번 실행하기 조금 번거로울때가 있다.
그럴때 JDBCTemplate에서 미리 기능을 정의하면 중복된 부분을 피해서 쓸 수 있다.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
package com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTemplate {
public static Connection getConnection() {
try {
//드라이버 연결
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
//드라이버 연결실패
e.printStackTrace();
}
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id="scott";
String pw="tiger";
Connection con = null;
try {
//계정 연결
con = DriverManager.getConnection(url, id, pw);
con.setAutoCommit(false);
} catch (SQLException e) {
//계정 연결 실패
e.printStackTrace();
}
return con;
}
public static boolean isConnection(Connection con) {
boolean valid = true;
try {
if(con == null || con.isClosed()) {
valid = false;
}
} catch (SQLException e) {
valid = true;
e.printStackTrace();
}
return valid;
}
//연결된 상태인지 아닌지 확인 ->연결 상태 확인되면 close
public static void close(Connection con) {
if(isConnection(con)) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//stmt가 null아닐때 close
public static void close(Statement stmt) {
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//rs가 null 아닐때 close
public static void close(ResultSet rs) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//연결 상태라면 commit
public static void commit(Connection con) {
if(isConnection(con)) {
try {
con.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//연결 상태라면 rollback
public static void rollback(Connection con) {
if(isConnection(con)) {
try {
con.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
|
cs |
이렇게 미리 JDBCTemplate을 만들어두면 필요시 import 해서 쓸 수 있다.
밑의 Dao가 그 예시이다.
이 dao를 보면 ① 드라이버 등록 ② db 등록을 하지 않은 걸 볼 수 있다.
중복되는 부분이 줄어드는게 장점이다.
이클립스 DB 연결
Window -> Show view -> Database Connections
New를 클릭해 연결할 db를 찾는다.
내 DB에 따라 고르기
저 요상한 기호를 클릭한다.
내가 받은 오라클 버전을 선택하고 바로 옆에 JAR List로 간다.
내 jdbc는 ojdbc6 이니 지워주고 추가해준다.
ok를 누르면 요 화면이 뜬다.
나는 저번에 오라클 sql 실습하며 만들어준 유저를 쓴다.
본인이 오라클(db)을 쓰며 생성했던 아이디와 패스워드를 넣어주면 된다. 잘 되는지 확인해주고 넘어간다.
이렇게 뜨면 이클립스와 db 연결이 잘 된 것이다.
JDBC를 통해 java에서 db를 연결해 여러 기능을 사용할 수 있다.
'Backend' 카테고리의 다른 글
MVC 웹 프로젝트 만드는 방법 두가지 (STS / MVC 패턴 / 스프링 입문 / 백엔드 / 웹개발) (0) | 2021.04.18 |
---|---|
Mybatis ( Mybatis 실습 / Java DB 연결 / 웹개발 / 웹독학 / 백엔드 개발자 / 프로그래밍) (0) | 2021.04.05 |
Maven 프로젝트 만드는 방법 (이클립스 스프링 다운 / STS 설치 / 스프링 입문 / 백엔드) (2) | 2021.04.02 |
JSTL & EL (jstl & el 기초 / jstl & el 입문 / 웹개발 / 웹기초 / 웹독학 / 백엔드 개발자 / 프로그래밍) (0) | 2021.03.06 |
웹 구동 방법 (웹 기초 / 웹 입문 / 웹 개발 / 프론트엔드 / 백엔드 / 네트워크) (0) | 2021.01.21 |
댓글