๐ปJDBC
- Java Database Connectivity ์ ์ฝ์์ด๋ค.
- ์๋ฐ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค(์ค๋ผํด)์ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ํ๋ค.
- ํผ์์คํด์ค ๊ณ์ธต์ด๋ผ๊ณ ๋ ํ๋ค.
- JDBC, Spring JDBC, MyBatis, JPA ๋ฑ์ด ๊ฐ์ ์ญํ ์ ์ํํ๋ค.
๐ปJDBC ๊ธฐ์ด๊ฐ๋
์ฌ๋๊ณผ ์ค๋ผํด ์๋ฒ ์ํต ๊ณผ์
1. ์ฌ๋์ด ์ค๋ผํด ์๋ฒ๋ฅผ ์ํตํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ(sql developer, dbeaver ๋ฑ)์ SQL๋ฅผ ์ด์ฉํ๋ค.
2. ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ DB ์๋ฒ ์ ์์ ํ์ํ ์ ๋ณด๋ฅผ ์๋์ ๊ฐ์ด ์๊ณ ์์ด์ผํ๋ค.
- ํธ์คํธ๋ช : localhost
- ํฌํธ๋ฒํธ: 1521
- SID : xe
- ๋๋ผ์ด๋ฒ : thin
- ์ฌ์ฉ์ : hr
- ์ํธ : java1234
3. SQL์ ์ด์ฉํ์ฌ ์ง์(๋ํ)๋ฅผ ํ๋ค.
- ์ฟผ๋ฆฌ ์ง์์ ๊ฒฐ๊ณผ๋ ๋ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
- ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ : select๋ฅผ ์ ์ธํ ๋ชจ๋ ์ฟผ๋ฆฌ
- ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ : select ๊ฒฐ๊ณผ์ ์ ๋ฐํํ๋ ์ฟผ๋ฆฌ, ๊ฒฐ๊ณผ์ ์ ์ ๋ฌด์ ์ฌ์ฉํ๋ค.
4. commit / rollback ์์ ๊ณผ ์ ์์ข ๋ฃ๋ฅผ ํ๋ค.
์๋ฐ ํ๋ก๊ทธ๋จ๊ณผ ์ค๋ผํด ์๋ฒ์ ์ํต ๊ณผ์
1. ์๋ฐ ํ๋ก๊ทธ๋จ ๋ฐ JDBC ์คํ
2. DB ์๋ฒ ์ ์
- JDBC์ Connection ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์ ๋ณด๋ก ์ค๋ผํด์ ์ ์ํ๋ค.
- ํธ์คํธ๋ช : localhost
- ํฌํธ๋ฒํธ: 1521
- SID : xe
- ๋๋ผ์ด๋ฒ : thin
- ์ฌ์ฉ์ : hr
- ์ํธ : java1234
3. ์ง์
- JDBC์ Statment ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ํ๋ค.
- JDBC๋ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ(๊ฒฐ๊ณผ์ )์ ResultSet ํด๋์ค๋ก ๊ฐ์ ธ์จ๋ค.
- ResultSet๋ฅผ ํ์ํ์ฌ ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋นํ๋ค.
4. ์ ์ ์ข ๋ฃ
- JDBC์ Connection ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค.
- commit / rollback ์์ ๊ณผ ์ ์์ข ๋ฃ๋ฅผ ํ๋ค.
์ฌ๋ + sql developer -- (sql) -- ์ค๋ผํด ์๋ฒ
์๋ฐํ๋ก๊ทธ๋จ + JDBC -- (sql) -- ์ค๋ผํด ์๋ฒ
์๋ฐ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ ์ญํ , JDBC๊ฐ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ ์ญํ ์ ํ๋ค.
๐ปJDBC ์ฐ๊ฒฐํ๊ธฐ
jar ํ์ผ ์ค์น 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
๋ฐฉ๋ฒ 1. ์ ์กฐ์ฌ์์ ๋ฐฐํฌํ ํ์ผ์ ์ฌ์ฉํ๋ค. ex) ์ค๋ผํด ํํ์ด์ง
๋ฐฉ๋ฒ 2. ์ค๋ผํด์ ์ค์นํ์ผ๋ฉด ์ค์นํด๋ ๋ด์ jar ํ์ผ์ด ํฌํจ๋์ด ์๋ค.
๋ฐฉ๋ฒ 2๋ก ์งํํด๋ณธ๋ค.
jar ํ์ผ ์ฐพ๊ธฐ
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
์๋ฐ11์ ๋ณดํต ๋ฒ์ 6์ ์ฌ์ฉํ๋ค.
์๋ฐ ํ๋ก์ ํธ์ ์ฐ๊ฒฐ
ojdbc6.jar๋ฅผ ์๋ฐ ํ๋ก์ ํธ์ ์ฐ๊ฒฐํ๋ค.
ํ๋ก์ ํธ์ lib ํด๋ ๋ด์ jar ํ์ผ์ ๋ถ์ฌ๋ฃ๊ณ ํ๋ก์ ํธ ์ฐํด๋ฆญํ์ฌ Bulid Path - Configure Build Path ๋ฅผ ์ ํํ๋ค.
Java Build Path
์๋จ Libraries - Classpath ์ ํ ํ ์ค๋ฅธ์ชฝ ๋ฒํผ ์ค ๋ค๋ฒ์งธ 'Add JARs...'๋ฅผ ์ ํํ๋ค.
์๊น ๋ถ์ฌ๋ฃ๊ธฐํ ojdbc6.jar ํ์ผ์ ์ ํํ๋ค.
Classpath์ ์ฐ๊ฒฐ๋ ๊ฒ์ ํ์ธํ์ผ๋ฉด Apply and Close๋ก ์ค์ ์ ๋ง๋ฌด๋ฆฌํ๋ค.
์ฐ๊ฒฐ์ด ํ์ค์ด ๋์๋ค๋ฉด jar ํ์ผ ์์ด์ฝ์ด ์ฑ ์ด ์์ฌ์๋ ๊ฒ๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค.
๐ปJDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํด๋์ค
- Connection, Statement, ResultSet ๋ฑ์ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ค.
- JDBC์ Connection ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์ ๋ณด๋ก ์ค๋ผํด์ ์ ์ํ๋ค.
- jdbc์ ๊ด๋ จ๋ ๋ชจ๋ ํด๋์ค๋ import java.sql.Connection;์ ์๋ค.
Connection ๊ฐ์ฒด
- Connection ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฐ๊ฒฐ์ ๋ํ๋ด๋ ์ธํฐํ์ด์ค์ด๋ค.
- ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ , ์ฐ๊ฒฐ๋ ์ํ์์ SQL ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ค.
1. ์ฐ๊ฒฐ ์ค์
Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ํ์ํ ์ ๋ณด๋ค(์ฃผ์, ์ฌ์ฉ์๋ช , ๋น๋ฐ๋ฒํธ ๋ฑ)์ ์ ๊ณตํด์ผ ํ๋ค.
/*
DB ์๋ฒ ์ ์์ ํ์ํ ์ ๋ณด๋ค
ํธ์คํธ๋ช
: localhost
ํฌํธ๋ฒํธ: 1521
SID : xe
๋๋ผ์ด๋ฒ : thin
์ฌ์ฉ์ : hr
์ํธ : java1234
*/
Connection conn = null;
//์ฐ๊ฒฐ ๋ฌธ์์ด, Connection String
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
sql developer์์๋ ui๋ก ์์ฑํ์ง๋ง ์๋ฐ์์ ์ฝ๋๋ก ์์ฑํ๊ธฐ์ ์ฐ๊ฒฐ๋ฌธ์์ด์ ์ฌ์ฉํ๋ค.
id์ pw ์ธ ๋๋จธ์ง ์ ๋ณด๋ฅผ url์ ํฉ์น๋ค.
2. ์ฐ๊ฒฐ ์์ฑ
DriverManager ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ค.
Class.forName("oracle.jdbc.driver.OracleDriver"); //JDBC ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉ
conn = DriverManager.getConnection(url, id, pw);
JDBC ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉํ์ฌ ๊ด๋ จ ํด๋์ค ์ ๋ณด๋ฅผ ํ์ธํ๊ณ
DriverManager ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ Connection ๊ฐ์ฒด ์์ฑ๊ณผ ๋์์ ์ค๋ผํด ์ ์ํ๋ค.
3. Statement ์์ฑ
createStatement() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Statement, PreparedStatement, CallableStatement ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
DB์ ์ ์์๋ ํ์์๋ ๊ฐ์ฒด์ด์ง๋ง, sql ๋ฌธ์ ์คํํ ๋ ํ์ํ ๊ฐ์ฒด์ด๋ค.
4. ์์ ํด์
Connection ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ํ์๋ ๋ฐ๋์ close() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์์์ ํด์ ํด์ผ ํ๋ค.
conn.close();
5. ์์ธ ์ฒ๋ฆฌ
์ธ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก try-catch ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ์์ธ๋ฅผ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
DB ์ ์ ํ๋ ์ ์ฒด ์ฝ๋
package com.test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class Ex01 {
public static void main(String[] args) {
/*
DB ์๋ฒ ์ ์ ์ ๋ณด
ํธ์คํธ๋ช
: localhost
ํฌํธ๋ฒํธ: 1521
SID : xe
๋๋ผ์ด๋ฒ : thin
์ฌ์ฉ์ : hr
์ํธ : java1234
*/
Connection conn = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, id, pw);
//์ ์ ์ํ ํ์ธํ๋ ๋ฐฉ์
System.out.println(conn.isClosed()); //false
System.out.println("์ง์ ์คํ");
conn.close();
System.out.println(conn.isClosed());
} catch (Exception e) {
e.printStackTrace();
}
}
}
'JDBC(Oracle)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JDBC] Auth(์ธ์ฆ ๋ฐ ํ๊ฐ) ๋ก๊ทธ์ธ ๊ตฌํ (0) | 2023.10.23 |
---|---|
[JDBC] Statement ๊ฐ์ฒด์ PrearedStatement, CallableStatement (0) | 2023.10.20 |
[JDBC] SQL ์คํ ๋ด๋น : Statement ๊ฐ์ฒด (0) | 2023.10.20 |
[JDBC] JDBC ๋ฆฌํฉํ ๋ง (0) | 2023.10.20 |