jdbc를 이용한 DML

select

package ex00.jdbcp.stmt;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//1) Oracle Server에 연결
//2) emp 테이블의 데이터를 읽어오자

public class JdbcSelect {
	// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
	//(초기화작업 : 가장 먼저 실행되어 이 클래스를 메모리에 올린다.)
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		// 2. 오라클 서버 접속 주소, 계정
		String url = "jdbc:oracle:thin:@localhost:1521:xe";	//docker쓰면 sql developer에서 사용했던 포트를 써야 함
		String id = "bitTest";
		String pass = "bitTest";
		try {
			// 3. 오라클 서버에 접속하기 위한 객체 생성
			Connection con = DriverManager.getConnection(url, id, pass);
			// 4. sql문을 실행하기 위한 객체 생성
            // sql 쿼리문을 데이터베이스로 전송해주기위한 객체를 생성하는 메소드이다.
			Statement statemt = con.createStatement();
			// 5. sql문
			String strSelect = "SELECT * FROM emp";
			// 6. sql문 서버로 전송 후 결과 받아오기
			ResultSet rs = statemt.executeQuery(strSelect);
			// 7. 결과 출력
			int cnt=0;
			
//			rs는 내부에 커서가 있어서 1번째 행 이전을 가리키다가
//			rs.next()를 호출할 때마다 다음행으로 커서를 옮긴다.
//			더이상 읽을 행이 없으면 false를 반환하므로 while문이 빠져나간다.
			while(rs.next()) {		
//				rs.getString("eno") 이렇게 해도 된다. 
				System.out.println("--------[ " + cnt + " ]---------");
				System.out.println("eno : " + rs.getString(1));
				System.out.println("ename : " + rs.getString(2));
				System.out.println("job : " + rs.getString(3));
				System.out.println("mgr : " + rs.getString(4));
				System.out.println("hdate : " + rs.getString(5));
				System.out.println("sal : " + rs.getString(6));
				System.out.println("comm : " + rs.getString(7));
				System.out.println("dno : " + rs.getString(8));
				cnt++;
			}
			
			rs.close();
			statemt.close();
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

insert

package ex00.jdbcp.stmt;

import java.sql.*;

public class JdbcInsert {
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
		
	public static void main(String[] args) {
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "bitTest";
		String pass = "bitTest";
		
		//3. 오라클 서버 접속 객체 계정
		try {
		Connection con = DriverManager.getConnection(url, id, pass);
		//4. sql 쿼리문을 실행하기 위한 객체를 생성
		Statement statemt = con.createStatement();
		//5. sql문 작성
		String strInsert = "INSERT INTO emp (eno, ename) " + "\r\n" + //개행문자
							"VALUES ('9000', '홍길동')";
		//6. 실행
		//cnt는 몇개 행에 적용되었느냐? 
		int cnt = statemt.executeUpdate(strInsert);
		System.out.println(cnt + "행에 적용됨");
		
		//7. 종료
		statemt.close();
		con.close();
		
		} catch(SQLException e){
			e.printStackTrace();
		}		
	}
}

update

package ex00.jdbcp.stmt;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcUpdate {
	// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		// 2. 오라클 서버 접속 주소, 계정
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "bitTest";
		String pass = "bitTest";

		// 3. 오라클 서버 접속 객체 계정
		try {
			Connection con = DriverManager.getConnection(url, id, pass);
			// 4. sql 쿼리문을 실행하기 위한 객체를 생성
			Statement statemt = con.createStatement();
			// 5. sql문 작성
			String strUpdate = "UPDATE emp SET ename='장길산', job = '활빈'" + "\r\n" 
							+ "WHERE ename='임꺽정'";
			// 6. 실행
			// cnt는 몇개 행에 적용되었느냐?
			int cnt = statemt.executeUpdate(strUpdate);
			System.out.println(cnt + "행에 적용됨");

			// 7. 종료
			statemt.close();
			con.close();

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

Delete

package ex00.jdbcp.stmt;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcDelete {
	// 1. oracle에 접속하기 위한 클래스를 메모리에 로딩하는 작업
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		// 2. 오라클 서버 접속 주소, 계정
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		String id = "bitTest";
		String pass = "bitTest";

		// 3. 오라클 서버 접속 객체 계정
		try {
			Connection con = DriverManager.getConnection(url, id, pass);
			// 4. sql 쿼리문을 실행하기 위한 객체를 생성
			Statement statemt = con.createStatement();
			// 5. sql문 작성
			String strDelete = "DELETE FROM emp WHERE dno='01'";
			// 6. 실행
			// cnt는 몇개 행에 적용되었느냐?
			int cnt = statemt.executeUpdate(strDelete);
			System.out.println(cnt + "행에 적용됨");
			
			// 7. 종료
			statemt.close();
			con.close();

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

좋은 웹페이지 즐겨찾기