article thumbnail image
Published 2022. 11. 29. 17:33

insert문 =  처리된 행수 (int) => 트랜잭션 처리

예시)  내 PC(localhost) DB상 JDBC계정에 있는 TEST 테이블에 INSERT하기 

//실행 결과를 보관할 변수 
int result = 0;
		
//JDBC 과정중에 필요한 객체
Connection conn = null;
Statement stmt = null;

 

-실행할 sql문 변수에 담기 

String sql = "INSERT INTO TEST VALUES(SEQ_TESTNO.NEXTVAL,'테스트4',SYSDATE)";

-> 사용자로 부터 입력받은 값 insert하고자할때

Scanner sc = new Scanner(System.in);
System.out.print("추가하고자하는 이름 입력 : ");
String name = sc.nextLine();
String sql = "INSERT INTO TEST VALUES(SEQ_TESTNO.NEXTVAL, '"+ name +"', SYSDATE)";
	// 문자열은 반드시 ''홑따옴표 안에 들어가야함

>> TNO는 시퀀스를 이용하여 겹치치않는 번호 자동 생성 

 

try {
	//1) jdbc driver 등록
	 Class.forName("oracle.jdbc.driver.OracleDriver");
			
	//2) Connection 생성 == DB 접속
	conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","JDBC","JDBC");
			
	//3) sql 실행을 위한 Statement생성
	 stmt = conn.createStatement();
			
	//4,5)sql문 실행 및 결과 받기 
	result = stmt.executeUpdate(sql);
			
	//6) 트랜잭션처리 
		if(result > 0) {
			conn.commit();
		}else {
			conn.rollback();
		 }
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally { 
			//7) 다 쓴 자원 반납 
			try {
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(result >0) {
			System.out.println("성공적으로 추가되었습니다.");
			
		}else {
			System.out.println("추가하는데 실패했습니다.");
		}
	}
}

>> insert 결과 

 

 

'JDBC' 카테고리의 다른 글

JDBC 01 _ delete문  (0) 2022.11.30
JDBC 01 _ update문  (0) 2022.11.30
JDBC 01 _ 여러행 select문 조회  (0) 2022.11.30
JDBC 01 _ 단일행 select문 조회  (0) 2022.11.29
JDBC 01 _ Basic  (0) 2022.11.29
복사했습니다!