06/13_Java_JDBC

정희운·2023년 6월 13일
0

Java DataBase Connectivity


		Connection conn = null;
		PreparedStatement psmt = null;

1. Class.forName("oracle.jdbc.driver.OracleDriver");
2. try catch 문 생성
3. String db_url = "jdbc:oracle:thin:@localhost:1521:xe";
   String db_user = " ";
   String db_pw = " ";
	  		// jdbc:oracle:thin: = jdbc드라이버의 접두사
		    // @localhost =  데이터베이스가 로컬 호스트에 있는 것을 나타냅니다. 로컬 호스트는 현재 실행 중인 컴퓨터를 가리킵니다.
 		    // 1521 = Oracle 데이터베이스의 포트 번호입니다. 포트 번호 1521은 Oracle 데이터베이스의 기본 포트 번호입니다.
		    // xe = Oracle 데이터베이스의 SID (System Identifier) 또는 서비스 이름 SID는 데이터베이스의 고유 식별자입니다.
   
4. Connection conn = DriverManager.getConnection(db_url, db_user ,db_pw);
 		    //이 코드는 JDBC의 DriverManager 클래스를 사용하여 데이터베이스 연결을 설정합니다. 
5. 스캐너로 url/user/pw 입력받아 적용
6. String sql = ex) "insert into member values(? , ? , ?) "; 
7. PreparedStatement psmt = conn.prepareStatement(sql); 
			//SQL 문을 실행하기 위해 준비된 문을 생성하는 코드입니다.
			//Connection 객체인 conn을 사용하여 PreparedStatement 객체를 생성합니다.
			//PreparedStatement는 미리 컴파일된 SQL 문을 나타내는 객체로, 특정 매개변수를 가진 SQL 문을 실행할 수 있습니다.
            //이후에는 psmt 객체를 사용하여 매개변수를 설정하고 SQL 문을 실행할 수 있습니다.
8. int result = psmt.executeUpdate();
			// SQL 문을 데이터베이스에서 실행하고, 데이터베이스에 영향을 미친 행의 수를 반환합니다. 이를 result 변수에 할당합니다.
			// executeUpdate() 메서드는 INSERT, UPDATE 또는 DELETE와 같이 데이터베이스의 데이터를 변경하는 SQL 문에 사용됩니다.
			
			// 예를 들어, result 값이 1이면 SQL 문이 성공적으로 실행되어 데이터베이스에 1개의 행이 영향을 받았음을 의미합니다. 
			// 0이 반환되면 SQL 문이 실행되었지만 데이터베이스에 영향을 미친 행이 없음을 의미합니다.
9. finally {
			// 에러가 발생하거나 발생하지 않더라도 마지막에 꼭 실행되어야 하는 부분!
            // 중간에 오류 발생하더라도 결과를 마지막에 도출될수 있도록 하는 키워드
			// 자원 반납 순서 -> 사용한 객체들의 역순으로 닫아주기!
			// 생성의 순서 1. conn -> 2. psmt
			// 반납의 순서 1. psmt -> 2. conn

			// 둘다 if문으로 닫아줘야한다 if else는 둘중 한가지
			try {
				if (psmt != null) {
					psmt.close();
				}
				if (conn != null) {
					conn.close();
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

0개의 댓글