JDBC(Java Database Connectivity)는 자바를 사용하여 데이터베이스에 접속하고 데이터를 관리하기 위한 API(응용 프로그래밍 인터페이스)이다. JDBC를 사용하면 자바 애플리케이션에서 다양한 데이터베이스에 접속하고 SQL 문을 실행하여 데이터를 조작할 수 있다.
try {
String query = "SELECT ID, LAST_NAME FROM EMP";
stmt = con.createStatement();
rset = stmt.executeQuery(query);
} catch (SQLException) {
e.printStackTrace();
}
try {
String query = "INSERT INTO MEMBER VALUES(?, ?)";
pstmt = con.preparedStatment(query);
pstmt.getString(1, id);
pstmt.getString(2, password);
} catch {
e.printStackTrace();
}
/* next() : ResultSet의 커서를 하나 내리면서 해당 컬럼을 가르키고,
값이 존재하면 true 더이상 존재하지 않으면 false를 반환한다. */
while (rset.next()) {
System.out.println(rset.getString("ID"));
}
DriverManager에 해당하는 DBMS Driver를 등록한다.
Class.forName("com.mysql.cj.jdbc.Driver");
Driver로부터 Connection instance를 획득한다. (=DBMS 연결)
public static Connection getConnection(String url, String user, String password) throws SQLException {
Connection con = Drivermanager.getConnection("Jdbc:mysql://localhost/employee", "user", "password");
}
해당 Driver로부터 Connection instance 획득한다. (=Statement 생성)
Statement stmt = con.createStatement();
Statement에서 제공하는 method를 사용하여 SQL문을 실행한다. (= SQL 전송 및 결과 반환)
Strinig query = "SELECT ID, LAST_NAME FROM EMP;
ResultSet rset = stmt.executeQuery(query);
while(rset.next()) {
System.out.println(rset.getString("ID") + "\t" + rset.getString(2));
}
String query ="UPDATE EMP SET LAST_NAME = 'KIM'" + WHERE ID = '1000'";
int result = stmt.executeUpdate(query);
Connection close 및 객체를 반환한다.
finally {
try {
if(con != null && con.isClosed()) {
con.close();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Application {
public static void main(String[] args) {
Connection con = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/employee","user", "password");
System.out.println(con);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(con != null) {
try {
con.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
}
}