728x90
반응형

Oracle에 프로시저를 생성한 후 iBatis와 연동하여 데이터를 insert하는 예제입니다.


웹 화면에서 신규직원의 기본정보를 입력받아 Oracle HR계정의 EMPLOYEE 테이블에 기본정보를

입력합니다.









1.웹 화면에서 넘어온 파라미터를 HashMap에 저장한 후 아래와 같이 DAO를 호출함

// =================================================================================
// 직원등록
// =================================================================================
     public void insertEmployee(HashMap<String, String> hParam) {

             getSqlMapClientTemplate().queryForObject(

                                  "hihanjoong.oracle.query.OracleQuery.insertEmployee",hParam);
     }


2. sql 매핑을 아래와 같이 실행함

<procedure id="hihanjoong.oracle.query.OracleQuery.insertEmployee"

                                                                   parameterClass="java.util.HashMap">
        <![CDATA[

              {CALL rgister_employees(#first_name#,#last_name#,#email#,#job_id#)}

          ]]>
</procedure>


3. rgister_employees 프로시저 내용

CREATE OR REPLACE PROCEDURE HR.rgister_employees(
                 in_first_name VARCHAR2,
                 in_last_name VARCHAR2,
                 in_email VARCHAR2,
                 in_j_id VARCHAR2) IS

BEGIN
  INSERT INTO EMPLOYEES(employee_id, first_name, last_name,
                        email, hire_date,job_id)
  VALUES(EMPLOYEES_SEQ.NEXTVAL, in_first_name,
         in_last_name, in_email, sysdate, in_j_id);
COMMIT;

EXCEPTION WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE(in_first_name || ' ' || in_last_name || '등록실패' );
  ROLLBACK;

END;
/

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,