Java createStatement()

2023. 2. 20. 12:22Java

프로젝트 내 src 내 javabasic 패키지 내 JdbcEx1.java

package javabasic;

import java.sql.*;

public class JdbcEx1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 1.드라이버를 로딩
		// java.lang패키지에 있는 클래스--> Class를 이용하여 JDBC 드라이버를 로딩
//				Class.forName("클래스 이름")- 동적바인딩메서드(프로그램 실행시 드라이버를 로딩)

		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");

			System.out.println("드라이버를 로딩했습니다..!!!");
			// 2.데이타베이스와 연결
			String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// JDBC protocol 규약과 자바로만 개발된 thin
			String user = "scott";
			String pw = "a1234";
			Connection con = DriverManager.getConnection(url, user, pw);
//					con 객체는 연결정보를 갖고있는 객체
			System.out.println("데이터베이스에 접속 성공!!!");
			// 3.데이타베이스에 SQL 문을 전송을 하기위한 쿼리문을 생성(statement 객체)
			String sql = "select ename from emp";
//					statement 객체는 데이타를 읽어올 때 쓰는거니깐 소켓에서 아웃풋스트림과 비슷한 역할을 한다
//					전송하기 위한 statement 객체를 만들어 줘야 해요
			Statement st = con.createStatement();

			// 4.데이터베이스에 SQL 문을 전송
			ResultSet rs = st.executeQuery(sql);
//					cursor라는 메모리공간에 반환값이 저장되는데 cursor로 메모리공간을 하나씩 접근 꺼내올 수 있다
//					next메서드를 활용한다 while문을 이용해야 한다 왜냐면 데이타값이 단일이 아니라 여러 세트다

			// 5.데이타를 가져와서 출력
			while (rs.next()) {
				String col1 = rs.getString(1);
				System.out.println(col1);
			}
			// 6.데이타베이스와 연결된 자원을 반납
			if (con != null)
				con.close();
			if (st != null)
				st.close();
			if (rs != null)
				rs.close();

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

실행 결과

드라이버를 로딩했습니다..!!!
데이터베이스에 접속 성공!!!
홍길동
김관우
김장비
김유비
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

 

Statement java.sql.Connection.createStatement() throws SQLException

createStatement() 메서드는

데이타베이스로 SQL 문들을 보내기 위해서 Statement 객체 한개를 생성한다.

만약에 똑같은 SQL 문을 여러 번 실행되도록 하고자 하면, PreparedStatement 객체를 사용하는 게 훨씬 효율적일 것이다.

 

 

 

'Java' 카테고리의 다른 글

Java executeQuery(String sql)  (0) 2023.02.20
Java while 문 무한 loop 종료  (0) 2023.02.20
Java setNull(int parameterIndex, int sqlType)  (0) 2023.02.20
Java getBufferSize()  (0) 2023.02.20
Java executeBatch()  (0) 2023.02.20