청년취업아카데미/Java

[21.01.12 Java] JDBC

RSpring41 2021. 1. 12. 12:48

mvc패턴

MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.

 

 

 

JDBC는 다양한 데이터 베이스 프로그램을 동일한 문법으로 관리할 수 있게 만든것

 

4가지 순서로 데이터페이스 조작

 

 

 

DB에 접근하여 selec문을 이용한 회원 조회

Connection

PreparedStatement

ResultSet

세가지 인터페이스를 사용함

try {

			// 1. JDBC 드라이버를 로딩(동적 로딩)파일을 계속 확인하는게 아니라서 빨간줄 계속 (예외처리)
			Class.forName("oracle.jdbc.driver.OracleDriver");
			///////////////////////////////////////////////////////////////////////

			// 2. DB연결
			// 외부에서 접속하기 위해서는 localhost 부분을 ip주소로 변경
			String url = "jdbc:oracle:thin:@localhost:1521:xe";
			String user = "hr";
			String password = "hr";
			conn = DriverManager.getConnection(url, user, password);

			if (conn == null) {
				System.out.println("DB 연결 실패");
			} else {
				System.out.println("DB 연결 성공");
			}

			// 3.DB에 보낼 Query문 작성
			// 추상클래스는 객체 생성 안됨
			String sql = "select * from member";
			pst = conn.prepareStatement(sql);

			// 4.Query실행
			// insert, update,delete 는 DB을 변경하기 때문에 pst.executeUpdate
			// select 같이 DB에 변화가 없는 명령문은 pst.executeQuery
			// sql 결과를 Result에 입력
			rs = pst.executeQuery();

			// 5.번 ResultSet객체에 저장된 DB정보 가져오기
			while (rs.next()) {
				String getName = rs.getString(1);
				int getAge = rs.getInt(2);
				String getSex = rs.getNString(3);
				System.out.println("등록된 회원 >> \t이름 : " + getName + "\t 나이 : " + getAge + "\t 성별 : " + getSex + "\n");
			}

			// 오류 출력문: ClassNotFoundException: 클래스 파일을 찾지 못했을 경우
		} catch (ClassNotFoundException e) {
			// 오류 메시지 출력
			e.printStackTrace();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 6.DB관련 연결객체 종료
			// 사용한 자원은 꼭 반환하여준다
			// Connection, PreparedStatement를 사용했기 때문에 종료해줘야함
			try {
				if (pst != null) {
					pst.close();
				}
				if (conn != null) {
					conn.close();
				}

			} catch (SQLException e) {
				e.printStackTrace();
			}
		} // end try~catch~finally