RadarURL
Skip to content
조회 수 6991 추천 수 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

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
21 MySQL Dump / Import (덤프 / 임포트) JAESOO 2016.10.10 3147
20 빅데이터 시대, DB·데이터 암호화 솔루션 길라잡이 JAESOO 2015.04.29 3874
19 mariadb 원격 접속 허용 JAESOO 2014.04.29 5442
18 Database(데이터베이스) 관련 Naming Rule(이름설정 규칙) [SQL] JaeSoo 2013.12.03 7418
» iBATIS(아이바티스) 시작 JaeSoo 2013.09.22 6991
16 iBatis(아이바티스)란? JaeSoo 2013.09.22 7170
15 innodb 와 myisam 의 차이점과 성능비교 JaeSoo 2013.04.12 5317
14 DB 모델링 툴 검토 JaeSoo 2013.03.21 4559
13 데이터베이스 모델링 툴의 새로운 대안 eXERD JaeSoo 2013.03.21 11083
12 무료 DB모델링툴(Freeware) 검토결과 1 JaeSoo 2013.03.21 6532
11 ERD 그리는 프로그램 JaeSoo 2013.03.21 7837
10 [ERD 툴] DB Modelling 툴 종류 및 비교 JaeSoo 2013.03.21 9352
9 innodb를 myisam으로 변환 가능한가요? JaeSoo 2012.07.29 5132
8 InnoDB vs MyISAM JaeSoo 2012.07.29 3642
7 테이블 스페이스(TABLE SPACE)란? JaeSoo 2012.07.20 4634
6 SAM,DAM,VSAM,ISAM,SMS JaeSoo 2012.07.13 5381
5 고급 조인 만들기 : SELF JOIN, NATURAL JOIN, OUTER JOIN JaeSoo 2012.05.09 7938
4 쿼리의 결합 : UNION 으로 쿼리 결합하기 JaeSoo 2012.05.09 4595
3 ERD 를 엑셀 EXCEL 로 변환 JaeSoo 2012.04.24 5924
2 관계형 데이터 모델(Relational Data Model) 의 설계 JaeSoo 2012.02.17 6703
Board Pagination Prev 1 2 Next
/ 2

PageViews   Today : 609940 Yesterday : 643533 Total : 60466860  /  Counter Status   Today : 537087 Yesterday : 561688 Total : 28549875

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소