본문 바로가기
jsp

쿼리

by 신방동불주먹 2022. 11. 25.

<쿼리 작성 및 실행>

 

자바에서 쿼리는 java.sql.Statement 인터페이스로 표현되며 (<%@ page import="java.sql.*" %>)

Statement 객체는 Connect 객체를 통해 얻어오도록 함

 

  • 정적쿼리 : select * from db;  전체 db를 조회하는 유일한 쿼리 (인파라미터가 없는)
  • 동적쿼리 : 매번 값이 달라지는 쿼리 

** 인파라미터는 미리 작성해둔 쿼리값을 나중에 결정할 수 있게 해주는 변수이며, 쿼리문에서 ? 로 표현

 

String deletesql = "delete from emp01 where deptno = ?";
		PreparedStatement psmt3 = jdbc.con.prepareStatement(deletesql);
		psmt3.setInt(1,10); //10번부서 삭제
		
		psmt3.executeUpdate();

 

  • ? 에 10이 대입된다
  • setInt 앞의 1은 물음표의 순서

 

 

<클래스 객체>

  • PreparedStatement (동적)
  • Statement (정적)

 

 

<공통 실행 메소드>

  • excuteQuery() - select 

조회한 레코드들의 집함인 ResultSet 객체를 반환

  • excuteUpdate() -insert, update, delete

영향을 받은 행의 개수가 int 형으로 반환

 

 

 

 

<PreparedStatement >

 

 

1. jdbc에 연결

 

JDBConnect jdbc = new JDBConnect();

 

(JDBConnect)

	public JDBConnect() {
		String url = "jdbc:oracle:thin:@localhost:1521:orcl";

		try{
			Class.forName("oracle.jdbc.driver.OracleDriver");
			con = DriverManager.getConnection(url, "scott", "실제패스워드");
		}catch(Exception e){
			e.printStackTrace();
		}
	}

 

 

2. sql 작성

 

String deletesql = "delete from emp01 where deptno = ?";

 

3. connection객체를 통해 preparedstatement 객체 생성, sql문의 인수 제공

 

PreparedStatement psmt3 = jdbc.con.prepareStatement(deletesql);
		psmt3.setInt(1,10); //10번부서 삭제

 

4. 실행

 

psmt3.executeUpdate();

 

5. db 연결 해제

 

jdbc.close();

 

 

인파라미터 설정 시에는 데이터 타입에 맞는 set 메서드 사용

  • void setInt(int index, int value)
  • void setDate(int index, Date value) 날짜는 date, string 둘 다 가능하다
  • void setString(int index, String value)

 

'jsp' 카테고리의 다른 글

onsubmit  (0) 2022.11.28
session  (0) 2022.11.28
커넥션 풀(Connection Pool)  (0) 2022.11.25
ojdbc6.jar  (0) 2022.11.25
메서드  (0) 2022.11.24