메모장

[멘토 씨리즈] 부록 06.자바와 연동 본문

JAVA/[멘토씨리즈]

[멘토 씨리즈] 부록 06.자바와 연동

Itchild 2024. 4. 9. 21:31
728x90
반응형

 

데이터베이스와 자바프로그래밍을 JDBC를 이용하여 연동해보자

JDBC의 4가지 순서에 대해 알아보자

1. JAVA와 DB를 연결해줄 자원(resouce)을 가진 클래스

// (== 드라이버 : 서로 다른 시스템, 이종기기 간의 연결을 위해 필요한 객체 ) 를

메모리로 불러와야한다 == 이것을 load(적재)한다고 한다. ex)로딩중 할때 그 로딩 !

public static void main(String[] args) {
		
		final String driverName_MySQL = "com.mysql.cj.jdbc.Driver";
		// final String driverName_Oracle = "oracle.jdbc.driver.OracleDriver";
		
		try { 
			Class.forName(driverName_MySQL); 
			
		} catch (ClassNotFoundException e) { 
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
 

 

2. DB와 연결 ------> Connection 객체가 필요하다 !

final String url_MySQL="jdbc:mysql://localhost/hong"; 
		//final String url_Oracle="jdbc:oracle:thin:@localhost:1521:xe";
		final String userName="root";
		final String passwd="1234";
		Connection conn=null;

		try {
			  // DriverManager.getConnection(url, userName, passWord);
			conn=DriverManager.getConnection(url_MySQL, userName, passwd);
		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 

 

3. DB에 데이터를 작성하거나(write), DB의 데이터를 받아오거나(read) 할수 있음

----> Statement 객체를 생성하고, 사용하는것이 목표 ! 3번이 중요

이부분에서 INSERT,SELECTALL,SELECTONE, UPDATE, DELETE 다 해볼 수 있다.

final String sql_INSERT="INSERT INTO STUDENT (NAME,SCORE) VALUES('"+sVO.getName()+"',"+sVO.getScore()+");";

try {
			stmt=conn.createStatement(); // 만들고 // statement 가 read,write를 제공해주는 것 
			stmt.executeUpdate(sql_INSERT); // 사용
			// Query -> SELECT // 테이블에 영향을 주는 쿼리문 
			// Update -> INSERT,UPDATE,DELETE // 테이블에 영향을 주지 않는 쿼리문
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
 

 

3. 이번엔 SELECT 를 사용 해보자 . READ 읽어오기

Statement stmt=null;
		
         ResultSet rs=null;
	     final String sql_SELECTALL="SELECT NUM,NAME,SCORE FROM STUDENT;";
      

       try {
			stmt=conn.createStatement();  
			rs=stmt.executeQuery(sql_SELECTALL); 
			
			while(rs.next()) {
						
		StudentVO sVO=new StudentVO(rs.getInt("NUM"),rs.getString("NAME"),rs.getInt("SCORE"));
				
//				System.out.println(rs.getInt("NUM"));
//				System.out.println(rs.getString("NAME"));
//				System.out.println(rs.getInt("SCORE"));
				System.out.println(sVO);
				System.out.println();
			}

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

4. DB와 연결해제 ★ (컴퓨터가 메모리를 계속 계속 잡아먹어서 갑자기 꺼진다. 반드시 연결해제를 해준다. )

 try {
			stmt.close(); // 만든거 역순으로  
			conn.close(); // 닫고 다시 닫고 나와야 함 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		System.out.println(" 로그: 프로그램 종료");
 

주의 ! close 를 깜빡하지 말고 해줘야 하는데 close하는 순서는 방문을 여는 순서라고 생각하면 된다 .

방문 1 을 열고 -> 방문 2를 열었을때 !! 닫을 때는 역순으로 방문2를 닫고 나오고 그다음 방문1을 닫는다.

 

728x90
반응형