개발자 미니민의 개발스터디

[JAVA] 자바 - JDBC (Statement / createStatement / executeUpdate)

by mini_min
[JAVA]
자바 - JDBC (Statement / createStatement / executeUpdate)

✔️ Statement

: 오라클과 자바 연동시키는 클래스 다음으로, 본격적으로 데이터를 가져올 수 있는 인터페이스를 배워봤다.

: 정적인 SQL 문을 실행하기 위한 메소드를 제공하는 인터페이스이다.

: connection 인터페이스의 createStatement() 메소드 이용해 객체 반환

import java.sql.Statement;

 

-- 일단 DB 연결된 상태를 담을 객체 불러오기

-- Statement 는 null로 초기값을 준다.

-- SQL 문을 작성할 String sql 도 선언해주기.

Connection conn = DBConn.getConnection();
Statement stmt = null;
String sql;
int result;

 

-- SQL 문 실행하기

try {
			stmt = conn.createStatement();
			
		//INSERT INTO 테이블명(컬럼,컬럼) VALUES(값, 값);
			// 2번 실행하면 에러. 기본키 중복 안된다. 
	sql = "INSERT INTO score(hak, name, birth, kor, eng, mat) VALUES("
		+ " '1002', '홍길동', '2002-10-10', 80, 90, 95) ";
			
			result = stmt.executeUpdate(sql);
			
			System.out.println(result + "행이 추가 되었습니다.");
💡 stmt = conn.createStatement : 정적 쿼리 실행문이다! 
해당 메소드를 이용해서 객체를 반환한다.

sql 문자열 객체에 실행문을 적어주며,
stmt 객체에 executeUpdate()  메소드를 이용해 DML / DDL 을 실행한다.

 

⭐ executeUpdate()

: DML , DDL 을 실행

: DML은 변경 행수를 반환하고 DDL은 0을 반환 ***  = 그래서 result 가 int 형이구나!

: SELECT 문을 제외한 나머지 쿼리를 실행하는 것!

: 자바에서는 INSERT, UPDATE, DELETE 등의 명령을 실행하면 자동으로 COMMIT 된다.

 

-- 마지막으로 예외처리 해주기

} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if(stmt != null) {
				try {
					stmt.close();
				} catch (Exception e2) {
				}
			}
				DBConn.close();
				
				
		}

 

 

-- try ~ with ~ resources 를 이용한 리소스 자동 close 도 가능

		Connection conn = DBConn.getConnection();
		String sql;
		int result;
		
		//try ~ with ~ resources 를 이용한 리소스 자동 close 
		try(Statement stmt = conn.createStatement()) {

			sql = "INSERT INTO score(hak, name, birth, kor, eng, mat) VALUES("
		+ " '2001', '너자바', '2002-10-11', 90, 90, 95) ";
			
			result = stmt.executeUpdate(sql);
			
			System.out.println(result + "행이 추가 되었습니다.");
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
		
			DBConn.close();
				
				
		}

 

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기