
JDBC(Java Database Connectivity)๋ ์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ ์ ์๋๋ก ์ง์ํ๋ API์ ๋๋ค.
Java ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ ์ ์๋๋ก ํ์ค ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.

JDBC API๋ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ์ธํฐํ์ด์ค์ ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค:

1. ๋๋ผ์ด๋ฒ ๋ก๋
Class.forName("com.mysql.cj.jdbc.Driver");
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
DriverManager๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydb", "username", "password");
3. SQL ์คํ
String query = "SELECT * FROM users";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
4. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
while (rs.next()) {
System.out.println("User ID: " + rs.getInt("id"));
System.out.println("User Name: " + rs.getString("name"));
}
5. ๋ฆฌ์์ค ๋ซ๊ธฐ
rs.close();
stmt.close();
conn.close();
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "password";
try {
// 1. ๋๋ผ์ด๋ฒ ๋ก๋
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
Connection conn = DriverManager.getConnection(url, username, password);
// 3. SQL ์คํ
String query = "SELECT * FROM users";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
// 4. ๊ฒฐ๊ณผ ์ฒ๋ฆฌ
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id"));
System.out.println("Name: " + rs.getString("name"));
}
// 5. ๋ฆฌ์์ค ๋ซ๊ธฐ
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
1. Statement
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
2. PreparedStatement
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
pstmt.setInt(1, 1);
ResultSet rs = pstmt.executeQuery();
3. CallableStatement
CallableStatement cstmt = conn.prepareCall("{CALL my_procedure(?)}");
cstmt.setInt(1, 10);
cstmt.execute();
JDBC๋ Java์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ๊ธฐ์ ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ดํดํ๊ณ ์ง์ ๊ตฌํํ๋ ๋ฐ ์ ์ฉํ์ง๋ง, ์ค์ ํ๋ก์ ํธ์์๋ ์ ์ง๋ณด์์ ์ฑ๋ฅ์ ๊ณ ๋ คํด JPA๋ MyBatis์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
Spring JDBC๋ Spring Framework์์ ์ ๊ณตํ๋ JDBC ๋ชจ๋์ด๋ค.
์กฐ๊ธ ์ด๋ ต๊ฒ ๋งํ๋ฉด Spring Framwork์์ ์ ๊ณตํ๋ JDBC ์ถ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด๋ค.
Spring JDBC๋ JDBC ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ๊ณ , ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๊ณ , ๋ ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ ์์ฉํ ์ ์๋๋ก ๋๋๋ค.