본문 바로가기

Web Programming/Java

[BASIC JAVA] 23.JDBC

1. JDBC란??

  - Java DataBase Connectivity
  - 자바프로그램내에서 DB와 관련된 작업을 처리할 수 있도록 도와주는 일을 한다.
  


2. JDBC드라이버

  - 다운로드
  - 프로젝트에 jar파일 등록방식 3가지
  

3. JDBC 5단계

  - 드라이버 로딩
   : oracle.jdbc.driver.OracleDriver   //ojdbc 로딩시켜 드라이브로딩 실제 // 클레스 파일
  - DateBase접속
    : DriverManager.getConnection()
  - 질의(SQL문작성)
    : Statement, PreParedStatement  //둘중 하나 사용 편한것
  - 결과수집
    : ResultSet
  - 자원반납   // (접속종료)
    : close()

 

//try안에서 실수하면 사용못하기때문에 밖에다 선언 (2.DB커넥션)                                                                                      
Connection conn = null;                                                                                                      
Statement stmt = null; //3 트라이캐치가 있을땐 변수를 항상 밖에                                                                              
ResultSet rs = null; //4 에서 저장하기위해                                                                                           
                                                                                                                             
                                                                                                                             
try {                                                                                                                        
	//1. 드라이버 로딩                                                                                                             
	Class.forName("oracle.jdbc.driver.OracleDriver"); //문자열로 관리할때는 이름이 없을수도 있기 때문에 오타가 날수도있다 항상 트라이캐치해줘야한다.                  
	System.out.println("드라이버 로딩 성공");                                                                                        
	                                                                                                                         
	//2.                                                                                                                     
	String url = "jdbc:oracle:thin:@192.168.0.85:1521:xe";                                                                   
	String userId = "sem";                                                                                                   
	String password = "java";                                                                                                
	                                                                                                                         
	conn = DriverManager.getConnection(url, userId, password);                                                               
	System.out.println("DB접속 성공");                                                                                           
	                                                                                                                         
	//3. 질의                                                                                                                  
	stmt = conn.createStatement(); // 쿼리 통로 개방                                                                               
	String sql = "SELECT MEM_ID, MEM_PASS, MEM_NAME, MEM_JOB "                                                               
			   + "FROM   MEMBER ";                                                                                           
	//		   + "WHERE  MEM_ID = 'a001' ";                                                                                  
	                                                                                                                         
	rs = stmt.executeQuery(sql); //select 할때만 사용하는 메서드 다른것은따로있다.                                                             
	                                                                                                                         
	//4                                                                                                                      
	int index = 0;                                                                                                           
	while(rs.next()){  //다음게 있느냐 있으면 true준다 없으면 false 다음로우가 있느냐                                                              
		                                                                                                                     
		List<MemberVO> memList = new ArrayList<>();                                                                          
		                                                                                                                     
		MemberVO mv = new MemberVO();                                                                                        
		mv.setMem_id(rs.getString("mem_id"));                                                                                
		mv.setMem_pass(rs.getString("mem_pass"));                                                                            
		mv.setMem_name(rs.getString("mem_name"));                                                                            
		mv.setMem_job(rs.getString("mem_job"));                                                                              
		                                                                                                                     
		memList.add(mv);		                                                                                             
		                                                                                                                     
		System.out.println(memList.get(index));                                                                              
		                                                                                                                     
	//	System.out.println(rs.getString("mem_id")); //처음줄가져와서 mem_id컬럼형이 가지고있는 벨류갑 a001                                      
	//	System.out.println(rs.getString("mem_pass"));                                                                        
	//	System.out.println(rs.getString("mem_name"));                                                                        
	//	System.out.println(rs.getString("mem_job"));                                                                         
		                                                                                                                     
	}                                                                                                                        
	                                                                                                                         
	                                                                                                                         
	                                                                                                                         
} catch (ClassNotFoundException e) { //1                                                                                     
	System.out.println("드라이버 로딩 실패");                                                                                        
	e.printStackTrace();                                                                                                     
} catch (SQLException e) {           //2                                                                                     
	System.out.println("DB접속 실패");                                                                                           
	e.printStackTrace();                                                                                                     
} finally {  //5 자원반납 종료                                                                                                     
	                                                                                                                         
	try{                                                                                                                     
		if(rs != null){                                                                                                      
			rs.close();                                                                                                      
		}                                                                                                                    
		                                                                                                                     
		if(stmt != null){                                                                                                    
			stmt.close();                                                                                                    
		}                                                                                                                    
		                                                                                                                     
		if(conn != null){                                                                                                    
			conn.close();                                                                                                    
		}                                                                                                                    
		                                                                                                                     
	} catch (SQLException e){                                                                                                
		e.printStackTrace();                                                                                                 
		                                                                                                                     
	}                                                                                                                        
	                                                                                                                         
}                                                                                                                            
                                                                                                                             
                                                                                                                             

'Web Programming > Java' 카테고리의 다른 글

[BASIC JAVA] 22.SET_TEST  (0) 2021.06.20
[BASIC JAVA] 21.MAP_TEST  (0) 2021.06.20
[BASIC JAVA] 20.STACK_QUERE_TEST  (0) 2021.06.20
[BASIC JAVA] 19.ITERATOR_TEST  (0) 2021.06.20
[BASIC JAVA] 18.ARRAYLIST_TEST  (0) 2021.06.20