JDBC
2020-02-25
위 문제는 JDBC에 관한 설명입니다.
Spring JDBC의 존재가 있어서 편리하게 사용할 수 있지만,
JDBC의 동작 방법에 대해서 알고 있는 것이 문제해결에 좋습니다.
JDBC 개요
JDBC(Java Database Connectivity)의 정의
- 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약
- 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API
- SQL과 프로그래밍 언어의 통합 접근 중 한 형태
JAVA는 표준 인터페이스인 JDBC API를 제공
데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 제공한다.
JDBC 환경 구성
1.JDK 설치
2.JDBC 드라이버 설치
- 전에는 웹에서 사용할 때에는 JSTL 사용할 때, lib라는 디렉토리에다가 라이브러리 추가해주었습니다. 그러나 Maven을 이용하면 조금 더 편리하게 사용이 가능합니다. 다음과 같은 의존성을 추가합니다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0</version> // 해당버젼에 맞게
</dependency>
DBC를 이용한 프로그래밍 방법
1.import java.sql.*;
2.드라이버를 로드 한다.
3.Connection 객체를 생성한다.(접속)
4.Statement 객체를 생성 및 질의 수행(Select문과 같은 쿼리문 생성 및 실행)
5.SQL문에 결과물이 있다면 ResultSet 객체를 생성한다.(Select처럼 결과가 있는 경우, DB에서 결과를 불러옴)
6.모든 객체를 닫는다.(객체를 닫는 것은 여태 왔던 순서의 역순으로 Close)
JDBC 클래스의 생성 관계
-
DriverManager를 이용해서 Connection 인스턴스를 얻는다.
-
Connection을 통해서 Statement를 얻는다.
-
Statement를 이용해서 ResultSet을 얻는다.
-
ResultSet객체 Close -> Statement객체 Close -> Connection객체 Close
JDBC 사용 - 단계별 설명
1. IMPORT
import java.sql.*;
2. 드라이버 로드
Class.forName( "com.mysql.jdbc.Driver" );
- Connection 얻기
String dburl = "jdbc:mysql://localhost/dbName"; Connection con = DriverManager.getConnection ( dburl, ID, PWD );
- Statement 생성
Statement stmt = con.createStatement();
- 질의 수행
ResultSet rs = stmt.executeQuery("select no from user" ); 참고 stmt.execute(“query”); //any SQL stmt.executeQuery(“query”); //SELECT stmt.executeUpdate(“query”); //INSERT, UPDATE, DELETE
- ResultSet으로 결과 받기
ResultSet rs = stmt.executeQuery( "select no from user" ); while ( rs.next() )// 결과값이 존재한다면 받아옴 System.out.println( rs.getInt( "no") );
- Close ```java rs.close();//ResultSet객체 Close
stmt.close();//Statement객체 Close
con.close();//Connection객체 Close ```