RadarURL
Skip to content
조회 수 7014 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

데이터 매퍼는 자바빈즈, Map구현체, 원시래퍼타입(String, Integer…) 그리고 SQL문을 위한 XML문서를 매핑하기 위한 XML서술자를

사용하는 매우 간단한 프레임워크를 제공한다.

600px-IBatis.jpg

 

 

 

1.Value객체정의

    POJO타입의 파라미터 객체 정의

    파라미터(자바빈즈, Map 또는 원시래퍼)로써 객체를 제공한다.

    파라미터 객체는 update문에서 입력값을 셋팅하기 위해 사용되거나 쿼리문의 where절을 셋팅하기 위해서 사용된다

EmpVO

 

package ex1.vo;

public class EmpVO {
    //DB에서 가져올 컬럼명들을 멤버로 선언
    //사번 이름,직종,입사일

    private String employee_id,first_name,job_id,hire_date;

    public String getEmployee_id() {
        return employee_id;
    }

    public void setEmployee_id(String employee_id) {
        this.employee_id = employee_id;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getHire_date() {
        return hire_date;
    }

    public void setHire_date(String hire_date) {
        this.hire_date = hire_date;
    }

    public String getJob_id() {
        return job_id;
    }

    public void setJob_id(String job_id) {
        this.job_id = job_id;
    }
   
}

 


 2.환경설정 파일(sqlMapConfig.xml) 작성

DB정보
SqlMap파일정보

SQL문을 위한 XML문서를 매핑하기 위한 XML서술자

<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE sqlMapConfig PUBLIC"-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
    <!-- RDBMS의 정보를 입력한다. -->
    <transactionManager type="JDBC">  //트랜잭션타입은 JDBC
        <dataSource type="SIMPLE"> //간단한 JDBC로 할경우
            <property name="JDBC.Driver" value="oracle.jdbc.OracleDriver"/> //DB 드라이버
            <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:xe"/>  //DB URL
            <property name="JDBC.Username" value="hr"/> //DB 아이디
            <property name="JDBC.Password" value="1111"/> // DB 패스워드
        </dataSource>
    </transactionManager>

    <!-- sqlMap파일의 정보를 입력한다-->
    <sqlMap resource="ex1sqlMapemp.xml"/>
   
</sqlMapConfig>

 

 

3.sqlMap파일작성

SQL문 작성 

 구문타입

 속성 (결과객체,파라미터객체지정)

 사용하는 경우

 <select>

 id,parameterClass,resultClass,parameterMap,resultMap

 데이터조회

 <insert>

 id,parameterMap,resultMap

 데이터입력

 <update>

 id,parameterMap,resultMap

 데이터수정

 <delete>

 id,parameterMap,resultMap

 데이터삭제

 

 

데이터 매퍼프레임워크는 매핑된 구문을 실행하여 PreparedStatement 인스턴스를 생성할것이고

제공된 파라미터객체를 사용해서 파라미터를 셋팅하고 ResultSet으로부터 결과 객체를 생성한다.

<sql.xml>

<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
    <!-- select절을 수행한 후 모든 결과를 EmpVO로 생성하여 java.util,List로 저장하여 반환하는 SELECT! -->
    <select id="empAll" resultClass="ex1.vo.EmpVO">
        SELECT employee_id,first_name,job_id,hire_date FROM employees
    </select>

    <select id="searchName" resultClass="ex1.vo.EmpVO" parameterClass="String">
        SELECT * FROM employees WHERE first_name = #n#
    </select>
</sqlMap>

 

 

 

 


4.JavaApp생성

  1 ) 환경설정파일 스트림 로드
  2 ) 클라이언트객체생성

  3 ) iBATIS를 활용하여 SQL문 호출

  4 ) 결과확인

       update의 경우에 영향을 미친 rows의 숫자를 반환한다.

       조회작업인 경우에 한 개(single)의 객체 또는 컬렉션 객체를 반환한다.

       파라미터처럼 결과 객체는 자바빈즈, Map 원시타입래퍼또는 XML이 될수 있다.

  package ex1.client;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import ex1.vo.EmpVO;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;

public class EmpClient {
    public static void main(String[] args) throws IOException, SQLException {
        //1)iBATIS환경설정 파일(sqlMapConfig.xml)을 스트림으로 생성한다
        Reader r = Resources.getResourceAsReader("ex1/config/sqlMapConfig.xml");

        //2)위에서 생성한 스트림을 가지고 sqlMap들만 가져와 sqlMapClient에게 전해준다.
        SqlMapClient smap = SqlMapClientBuilder.buildSqlMapClient(r);

        r.close();

        //3) iBATIS활용-id가 empAll인 select요소를 수행한다.
        List<EmpVO> list = smap.queryForList("empAll");

        //4) 확인
        for (EmpVO vo : list) {
            System.out.println(vo.getEmployee_id()+"/"+vo.getFirst_name());
        }

        System.out.print("이름:");
        Scanner sc = new Scanner(System.in);
        String name = sc.nextLine();

        List<EmpVO> names = smap.queryForList("searchName", name);
         for (EmpVO vo : names) {
            System.out.println(vo.getEmployee_id()+"/"+vo.getFirst_name());
        }
    }
}

 

출처 : http://blog.naver.com/poloecko/70094795635

?

  1. No Image 10Oct
    by JAESOO
    2016/10/10 by JAESOO
    Views 3194 

    MySQL Dump / Import (덤프 / 임포트)

  2. No Image 29Apr
    by JAESOO
    2015/04/29 by JAESOO
    Views 3918 

    빅데이터 시대, DB·데이터 암호화 솔루션 길라잡이

  3. No Image 29Apr
    by JAESOO
    2014/04/29 by JAESOO
    Views 5473 

    mariadb 원격 접속 허용

  4. No Image 03Dec
    by JaeSoo
    2013/12/03 by JaeSoo
    Views 7451 

    Database(데이터베이스) 관련 Naming Rule(이름설정 규칙) [SQL]

  5. No Image 22Sep
    by JaeSoo
    2013/09/22 by JaeSoo
    Views 7014 

    iBATIS(아이바티스) 시작

  6. No Image 22Sep
    by JaeSoo
    2013/09/22 by JaeSoo
    Views 7192 

    iBatis(아이바티스)란?

  7. No Image 12Apr
    by JaeSoo
    2013/04/12 by JaeSoo
    Views 5335 

    innodb 와 myisam 의 차이점과 성능비교

  8. No Image 21Mar
    by JaeSoo
    2013/03/21 by JaeSoo
    Views 4578 

    DB 모델링 툴 검토

  9. 데이터베이스 모델링 툴의 새로운 대안 eXERD

  10. 무료 DB모델링툴(Freeware) 검토결과

  11. No Image 21Mar
    by JaeSoo
    2013/03/21 by JaeSoo
    Views 7861 

    ERD 그리는 프로그램

  12. [ERD 툴] DB Modelling 툴 종류 및 비교

  13. No Image 29Jul
    by JaeSoo
    2012/07/29 by JaeSoo
    Views 5148 

    innodb를 myisam으로 변환 가능한가요?

  14. No Image 29Jul
    by JaeSoo
    2012/07/29 by JaeSoo
    Views 3663 

    InnoDB vs MyISAM

  15. No Image 20Jul
    by JaeSoo
    2012/07/20 by JaeSoo
    Views 4661 

    테이블 스페이스(TABLE SPACE)란?

  16. No Image 13Jul
    by JaeSoo
    2012/07/13 by JaeSoo
    Views 5406 

    SAM,DAM,VSAM,ISAM,SMS

  17. No Image 09May
    by JaeSoo
    2012/05/09 by JaeSoo
    Views 7963 

    고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN

  18. No Image 09May
    by JaeSoo
    2012/05/09 by JaeSoo
    Views 4617 

    쿼리의 결합 : UNION 으로 쿼리 결합하기

  19. No Image 24Apr
    by JaeSoo
    2012/04/24 by JaeSoo
    Views 5946 

    ERD 를 엑셀 EXCEL 로 변환

  20. No Image 17Feb
    by JaeSoo
    2012/02/17 by JaeSoo
    Views 6727 

    관계형 데이터 모델(Relational Data Model) 의 설계

Board Pagination Prev 1 2 Next
/ 2

PageViews   Today : 237147 Yesterday : 180499 Total : 63248078  /  Counter Status   Today : 148563 Yesterday : 130400 Total : 30861976

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소