Oracle SQL: PreparedStatement

최대 1 분 소요

PreparedStatement

데이터베이스 명령어가 때로는 사용자가 입력한 값으로 명령어를 만들어야 하는 경우가 있다.

String sql = “update goods set item=?,qty=?,price=? where no=?”;

변수가 들어갈 자리에 ?로 대신하여 데이터베이스 명령어를 만들 수 있다.

//PreparedStatement 생성시에 ?가 있는 sql을 매개변수로 보내줄것
		pstmt = conn.prepareStatement(sql);
			
		//PreparedStatement 객체에 결정되지 않은 ?에 차례대로 값을 설정
		pstmt.setString(1, item);
		pstmt.setInt(2, qty);
		pstmt.setInt(3, price);
		pstmt.setInt(4, no);
			
		//PreparedStatement 객체 생성시에 이미 sql이 전달되었고
		//그리고 위에서 각각의 ?에 값이 연결된 상태이기 때문에
		//executeUpdate할때는 sql을 전달하지 말것
		//만약 전달하게 되면 ?의 값이 정해지지 않은 상태로 실행하게 된다->에러남
			int re = pstmt.executeUpdate();

C:\app\a863a\product\21c\homes\OraDB21Home1\network\admin