알고보면코딩천재

Java DB 통신 본문

Java

Java DB 통신

알코천 2022. 8. 12. 15:51

통신을 할 땐 프로토콜이 만들어져있어야 한다.

JDBC라이브러리<- 프로토콜 정의서

프로토콜을 지켜서 통신을 하기 위해 위의 라이브러리가 필요하다.

 

오라클 받으면 이미 설치되어 있다.

C드라이브 

복사

붙여넣기

 

 

 

 

빌드패스

컴퓨터 이름 or경로가 한글이면 안된다.

실행창에 netplwiz (윈+r)

사용자 이름 변경할 수 있다.

 

 

리스너 = 중간에서 다리 역할을 하는 애

리스너가 콜백 호출해주는거 대리인

 

==

1. 오라클에서 +버튼 누르는 것=>

connection이라는 메서드 하나 만들어준다

package db;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBEx01 {
	
	static void connection() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			Connection conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521:xe", 
					"SCOTT", 
					"TIGER"
					);
			
			if(conn != null) {
				System.out.println("연결성공");
			} else {
				System.out.println("연결실패");
			}
		} catch (Exception e) {
			
		}
	}

	public static void main(String[] args) {
		connection();

	}

}

연결성공!

 

conn이라는 객체로 메세지를 전송할 수 있다.

통신은 예외라는 게 있다 수많은 오류 -> 실행시(런타임) 터지기 때문에 미리 잡을 수 없다

 

!!. try-catch 

한줄한줄 실행되다가 오류가 터지면 catch로 자동으로 넘어가게 코드를 짠다.

package db;

import java.sql.Connection;
import java.sql.DriverManager;

public class DBEx01 {
	
	static void connection() {
		try {
			Class.forName("oracle.jdbc.driver.OracleDrive");
			
			Connection conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521:xe", 
					"SCOTT", 
					"TIGER"
					);
			

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		connection();

	}

}

어디서 어떤 오류가 났는지 알 수 있다.

crtl+shift+o 자동 import

rs=커서

 

package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBEx01 {

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

			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");

			return conn;

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		try {
			// 1.디비연결
			Connection conn = connection();
			
			// 2.문장완성
			PreparedStatement pstmt = conn.prepareStatement("SELECT empno, ename FROM emp WHERE empno=7369");
		
			// 3.문장정송
			ResultSet rs = pstmt.executeQuery();		
			
			// 4.커서 한칸 내리기
			boolean isTrue = rs.next();
			
			System.out.println(rs.getInt("empno"));
			System.out.println(rs.getString("ename"));
			
			System.out.println(isTrue);
			
			
			
			} catch (Exception e) {

		}

	}

}
package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBEx02 {

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

			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "SCOTT", "TIGER");

			return conn;

		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		try {
			// 1.디비연결
			Connection conn = connection();
			
			// 2.문장완성
			PreparedStatement pstmt = conn.prepareStatement("SELECT empno, ename FROM emp");
		
			// 3.문장정송
			ResultSet rs = pstmt.executeQuery();		
			
			// 4.커서 false 때까지 내리기
			while(rs.next()) {
				System.out.println(rs.getInt("empno")+" : "+rs.getString("ename"));
			}
			
			} catch (Exception e) {

		}

	}

}

'Java' 카테고리의 다른 글

UPDATE  (0) 2022.08.16
JavaDB통신 Entity, ArrayList  (0) 2022.08.16
오라클 다운로드  (0) 2022.08.08
제네릭 클래스  (0) 2022.08.08
추상클래스와 인터페이스  (0) 2022.08.05
Comments