KDT/TIL

2022-08-04 (Thu)

imname1am 2022. 8. 7. 22:34
반응형

Contents

       

       

      18. JDBC

      지난 글 이어서

       

       

       Connection 객체

      데이터베이스를 연결해 작업을 수행할 수 있도록 만들어 주는 중요한 객체
      Connection con = DriverManager.getConnection(url , uid, pwd);​

       

       Statement 객체

      Connection 객체(con)로 접근해 메소드 호출해 생성 - 쿼리문 수행
      Statement stmt = con.createStatement();

       PreparedStatement() 메소드

      // (1) PreparedStatement 객체 생성
      PreparedStatement pstmt = con.prepareStatement(sql);
      
      // (2) preparedStatement() 메소드 인자로 사용되는 SQL문 - ? 사용
      String sql = "INSERT INTO DEPT VALUES(?, ?, ?)";
      
      // (3) 예제
      pstmt.setString(1, deptno);
      pstmt.setString(2, dname);
      pstmt.setString(3, loc);

       

       ResultSet 객체

       

       ① executeQuery() : SELECT문 (결과 有)

      ▶ 반드시 result 타입으로 받아야 함

      String str = "select * from employee";  // SQL문
      ResultSet rs = stmt.executeQuery(str); 	// rs Row. SQL문 전송

       rs.next() : 현재 행에서 한 행 앞으로 이동 (OraSelect2.java -> SQL문 여러 개)

       

       ② executeUpdate() : INSERT, UPDATE, DELETE문   
          (내부적 변화 있으나 결과 X)

      변경된 행 수를 반환하므로 리턴형이 반드시 Int여야 함

      result : 작업에 성공한 갯수

      String sql = String.format("Insert Into dept values(%s, '%s','%s')", deptno, dname, loc);
      
      // result : 작업에 성공한 갯수)
      int result = stmt.executeUpdate(sql);	// 수행
      if(result > 0 ) System.out.println("입력 성공 ^ ^");
      else		System.out.println("입력 실패 T.T");

       

       [JAVA] PL/SQL문 프로시저 실행 (CallableStatement)

       

      170712) Java에서 Oracle 프로시저 실행

      ** 데이터베이스에서 프로시저(procedure) => 자주 사용하는 SQL 구문을 하나의 이름을 만들어서 사...

      blog.naver.com

       

      prepareCall 메서드(SQLServerConnection) - JDBC Driver for SQL Server

      prepareCall 메서드(SQLServerConnection)

      docs.microsoft.com


       Statement VS PreparedStatement

       

      [DataBase] Statement와 Prepared Statement 차이점

      SQL문을 실행할 수 있는 객체가장 큰 차이점은 캐시 사용 여부1) 쿼리 문장 분석2) 컴파일3) 실행쿼리문을 수행할 때마다 SQL 실행단계 1~3 단계를 거침SQL 문을 수행하는 과정에서 매번 컴파일을 하

      velog.io


       

      PL/SQL

      ORACLE

       

       [JAVA] SELECT문 : PL/SQL 테이블 조회

      SELECT 칼럼목록
      INTO {변수1[,변수2,...] | record_name}
      FROM 테이블명
      WHERE 조건;

      ORACLE 

       

       

       데이터 타입 : 레퍼런스 타입

      ‘TABLE명.COLUMN명%TYPE 

       

       PL/SQL 프로그램 종류 : Procedure, Function (+Trigger)

       ① Procedure : 결과값 하나 이상 (DEPT_INSERT, EMP_INFO2)

      CREATE [OR REPLACE] PROCEDURE 프로시저명
          (argument1 [mode] data_type,
           argument2 [mode] data_type
          )
      IS
          로컬변수 선언
      BEGIN
          선언문1;
          선언문2;
          ...
      END;

      매개변수 = argument

      •  IN        : 실행환경 → 프로시저로 값 전달.
      • OUT      : 프로시저 실행환경(=자바) 값 전달
      • INOUT : 양쪽으로 전달
      // 예제 : IN 매개변수 사용하기
      
      CREATE PROCEDURE sp_salary_ename
      (v_ename IN employee.ename%type)
      IS
      v_salary employee.salary%type;
      BEGIN
      	SELECT salary INTO v_salary
      	FROM employee
      	WHERE ename = v_ename;
      	DBMS_OUTPUT.PUT_LINE(v_ename || '의 급여는 ' || v_salary);
      END;

       

       ② Function : 결과값 반드시 한 개

      CREATE [OR REPLACE] FUNCTION 함수명
          (argument1 [mode] data_type, 
          argument2 [mode] data_type...
          )
          RETURN data_type;
      IS
          반환될 로컬변수 선언
      BEGIN
          선언문1;
          선언문2;
          RETURN 변수명;
      END;

      그 외 !

       

      생성된 ORACLE 프로시저 실행 방법

      테이블 값 변경

       PL/SQL문 컴파일 방법

      CREATE OR REPLACE : 없으면 만들고 있으면 교체.

      ㅅOUT :  자바에서 받는 거라 건들 수 없음 (NOT ACCESS : N/A)

       ORACLE 함수 생성

       

      반응형