JAVA

[JAVA] JDBC #1

로돌씨 2024. 4. 16. 17:44

JDBC란?

자바에서 데이터베이스에 접근할수 있게해주는 프로그래밍API

  • JDBC사용 객체

    DriverManager:

    데이터 원본에 JDBC 드라이버를 통하여 커넥션을 만드는 역할 Class.forName()메소드를 통해 생성되며 반드시 예외처리를 해야 함

    직접객체 생성이 불가능 , getConnection()메소드를 사용하여 객체 생성 가능

    Connection:


    특정 데이터 원본과 연결된 커넥션을 나타내며 Statement객체를 생성할때도 Connection 객체를 사용하여 createStatement()메소드를 호출하여 생성

    SQL 문장을 실행시키기전에 우선 Connection 객체가 있어야 함

    Statement:

    Connection 객체에 의해 프로그램에 리턴되는 객체에 의해 구현되는 일종의 메소드 집합정의

    Connection 클래스의 createStatement() 메소드를 호출하여 얻지며 생성된 Statement 객체로 질의 문장을 String 객체에 담아 인자로 전달하여 executeQuery() 메소드를 호출하여 SQL 질의 수행

 

예시→

try{
String query = “SELECT ID, LAST_NAME FROM EMP”; stmt = conn.createStatement();
rset = stmt.executeQuery(query);
} catch(SQLException e){
e.printStackTrace(); }

 

PreparedStatement:

Connection객체의 preparedStatement()메소드를 사용하여 객체 생성 SQL문장이 미리 컴파일되고 실행시간동안 인수값을 위한 공간을 확보한다는 점에서 Statement와 다름

 

예시→

try{
String query = “INSERT INTO MEMBER VALUES(?, ?)”; pstmt = conn.preparedStatement(query); pstmt.setString(1, id);
pstmt.setString(2, password);
} catch(SQLException e){
e.printStackTrace(); }

ResultSet:

SELECT 문을 사용한 질의 성공 시 Result Set 반환

SQL질의에 의해 생선된 테이블을 담고있으며 커서로 특정행에대한 참조 조작

 

JDBC 코딩 절차

  1. Driver 등록(DriverManager)
  2. DBMS연결(Connection)
  3. Statement생성(Statement)
  4. SQL 전송/ 결과받기(ResultSet)
  5. 닫기(객체 반환)

 

 

  •  Driver 등록

:DriverManager에 해당 DBMS Driver 등록

Class.forName(“com.mysql.jdbc.Driver ”);
ex) 다른 DB설정

Oracle: Class.forName(“oracle.jdbc.driver.OracleDriver ”);

 

반드시 ClassNotFoundException 처리할것

 

  • DBMS 연결

:해당 Driver로부터 Connection instance획득

public static Connection getConnection(String url, String user, String password) throws SQLException
Connection conn = DriverManager.getConnection( “jdbc:mysql://localhost/multi”,
“root”, “1234”);

반드시 SQLException 처리를 해야 함

 

  • Statement 생성

Connection instance로부터 Statement instance 획득

Statement stmt = conn.createStatement();

반드시 SQLException 처리를 해야 함

 

  • SQL 전송 / 결과받기
    1.Statement method를 이용하여 SQL 문 실행
    2.실행결과를 ResultSet(Select)혹은 int형 변수 (DML)로 받아서 처리
String 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 = ‘10000’”;
int result = stmt.executeUpdate(query);



  • 닫기(객체반환)
rset.close(); //ResultSet 사용한 경우 반납처리 stmt.close();
conn.close();

 

'JAVA' 카테고리의 다른 글

[JAVA] JDBC #2  (0) 2024.04.17
[JAVA]MVC패턴  (0) 2024.03.21
[JAVA]네트워크  (0) 2024.03.08
[JAVA]Thread  (0) 2024.03.05
[JAVA] Collection(List , set , Map)  (1) 2024.02.27