JDBC 정의
JDBC란?
- 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약이다.
- 자바는 표준 인터페이스인 JDBC API를 제공하고 있다. 즉, 인터페이스를 제공하고 있다
자바에서 DBMS로 접근하는 방식이 DBMS마다 다르다면 공부하기 힘들 것이다.
그래서 어떤 DBMS를 사용하더라도 똑같은 방식으로 다룰 수 있도록 한다.
JDBC 사용 - 단계별 정리
- 1단계 : import.sql.*;
- 알다시피 다른 패키지에 있는 클래스를 사용하기 위해서는 반드시 임포트를 해와야 한다.
- java.sql패키지 안에 Connection, ResultSet등 인터페이스가 들어있다.
- 2단계 : 드라이버를 로드한다.
- 자바에서 제공하는 JDBC API의 인터페이스들을 구현한것은 각각의 벤더들이 제공하는 드라이버에 있다.
- JDBC는 인터페이스를 제공하고 인터페이스들은 벤더를 만든 회사에서 구현하는 것이다.
- 드라이버를 로드하기 전 먼저 드라이버를 다운받아야 한다.
- JDBC를 설치해보자를 참고하자.
- 아래 코드는 다운받은 후 드라이버를 로드하는 방법 중 하나다.
Class.forName("com.mysql.jdbc.Driver");
- Class 클래스의 forName 메소드를 이용하면 만들어진 객체가 메모리에 올라간다.
- new를 사용해서 객체를 생성하는 것과 비슷한 기능을 하는 메소드다.
- 어떤 데이터베이스 벤더를 이용하느냐에 따라서 괄호 안의 값이 달라진다.
- 3단계 : Connection 객체를 생성한다.
String uri = "jdbc:mysql://localhost:3306/DB이름?"; // DB_URL uri += "useSSL=false&"; // 인증방식설정 uri += "serverTimezone=Asia/Seoul&"; // 서버시간설정 uri += "useUnicode=true&"; // 유니코드사용여부설정 uri += "characterEncoding=UTF-8"; String uid = "root"; String upw = "1234"; Connection conn = DriverManager.getConnection(uri, uid, upw);
- Connection 객체를 얻어낼 때 사용하는 것이 DriverManager객체이다.
- Connection 객체를 얻어낼 때 사용하는 것이 DriverManager객체이다.
- 4단계 : Statement 객체를 생성 및 수행
- 쿼리문을 생성하고 실행하는 역할을 하는 객체다.
- 메서드는 insert,select등의 쿼리문에 따라 다르다.
Statement stmt = conn.createStatement(); String sql = "select * from memberinfo"; ResultSet res = stmt.executeQuery(sql); res = stmt.excuteQuery(); stmt.execute("query"); stmt.excuteQuery("query"); stmt.executeUpdate("query");
- 5단계 : SQL문에 결과물이 있다면 ResultSet 객체를 생성한다.
String sql = "select * from memberinfo"; ResultSet res = stmt.executeQuery(sql);
- 현재 ResultSet은 데이터베이스쪽에 있고 데이터베이스의 ResultSet에서 res를 얻어온 것이다.
- 이 객체로 stmt.executeQuery(sql);를 실행했다.
- 6단계 : 모든 객체를 닫는다.
- 연결을 했다면 항상 접속을 끊어야한다. 열었던 반대 순서로 닫아준다.
- 연결을 했다면 항상 접속을 끊어야한다. 열었던 반대 순서로 닫아준다.
- 만약 쿼리를 실행했는데 결과가 엄청나게 많다면 한꺼번에 다 가져오면 문제가 발생한다.
- while문을 사용해서 하나씩 가져온다.
while(res.next()){ System.out.println(res.getInt("no")); }
- while문을 사용해서 하나씩 가져온다.
Leave a comment