## sqlMapConfig.xml 과 sqlMap.xml 설정내용 비교 ##
-- sqlMapConfig.xml --
<!DOCTYPE sqlMapConfig PUBLIC '-//ibatis.apache.org//DTD SQL Map Config 2.0//EN' 'http://ibatis.apache.org/dtd/sql-map-config-2.dtd'>

-- sqlMap.xml --
<!DOCTYPE sqlMap PUBLIC '-//ibatis.apache.org//DTD SQL Map 2.0//EN' 'http://ibatis.apache.org/dtd/sql-map-2.dtd'>

위와 같이 다르게 설정 해주어야함


------------------------------- sqlMapConfig.xml ------------------------------
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig PUBLIC '-//ibatis.apache.org//DTD SQL Map Config 2.0//EN' 'http://ibatis.apache.org/dtd/sql-map-config-2.dtd'>
<sqlMapConfig>
    <transactionManager type="JDBC" commitRequired="false" >
        <!--        // SIMPLE - 기본  -->
        <dataSource type="SIMPLE">
            <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
            <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.106.129:1521:ora9i"/>
            <property name="JDBC.Username" value="scott"/>
            <property name="JDBC.Password" value="tiger"/>
        </dataSource>
    </transactionManager>

<!--
    <sqlMap   /> 을 이용하여 여러개의 쿼리문이 담긴 xml 파일을 읽어들임
    이곳에 <sqlMap   />을 계속 추가를 하게됨       
-->
   

<sqlMap resource="ex2/client/DeptJoinEmp.xml"/>


</sqlMapConfig>


------------------------------- DeptJoinEmp.xml ------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC '-//ibatis.apache.org//DTD SQL Map 2.0//EN' 'http://ibatis.apache.org/dtd/sql-map-2.dtd'>
<sqlMap>
    <typeAlias alias="dept" type="ex2.vo.Dept"/>
    <typeAlias alias="emp" type="ex2.vo.Emp"/>

    <resultMap id="empRes" class="emp">
        <result property="deptno" column="deptno"/>
        <result property="ename" column="ename"/>
        <result property="job" column="job"/>
    </resultMap>

    <resultMap id="deptRes" class="dept">
        <result property="deptno" column="deptno"/>
        <result property="dname" column="dname"/>
<!--
    emp_list는 List 객체
    {deptno(멤버변수) = deptno(column)}
-->
        <result property="emp_list" column="{deptno=deptno}" select="emp_select"/>
    </resultMap>

<!--
parameterClass="emp" 객체를 호출하는거는 객체 안의 deptno 변수를 찾아서 넘겨준다.
-->

    <select id="emp_select" resultMap="empRes" parameterClass="emp">
        SELECT * FROM emp WHERE deptno = #deptno#
    </select>
    <select id="dept_select" resultMap="deptRes">
        SELECT * FROM dept
    </select>

</sqlMap>


------------------------------- Dept.java ------------------------------
// POJO 빈
package ex2.vo;

import java.util.List;

public class Dept {
    private int deptno;
    private String dname;
 // 현재 부서의 구성원(Emp)들을 저장할 곳
    List<Emp> emp_list;
   
    public int getDeptno() {
        return deptno;
    }

    public void setDeptno(int deptno) {
        this.deptno = deptno;
    }

    public String getDname() {
        return dname;
    }

    public void setDname(String dname) {
        this.dname = dname;
    }

    public List<Emp> getEmp_list() {
        return emp_list;
    }

    public void setEmp_list(List<Emp> emp_list) {
        this.emp_list = emp_list;
    }

}

------------------------------- Emp.java ------------------------------
// POJO 빈
package ex2.vo;

public class Emp {
    private int deptno; // 조건 값
    private String ename, job;

    public int getDeptno() {
        return deptno;
    }

    public void setDeptno(int deptno) {
        this.deptno = deptno;
    }

    public String getEname() {
        return ename;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }
}

------------------------------- DeptJoinEmp.java ------------------------------
// main 클래스 파일
package ex2.client;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import ex2.vo.Dept;
import ex2.vo.Emp;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

public class DeptJoinClient {
    public static void main(String[] args) throws IOException, SQLException{
        Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");

        SqlMapClient map = SqlMapClientBuilder.buildSqlMapClient(reader);
        reader.close();

        List<Dept> list = map.queryForList("dept_select");

        for(Dept d : list){
         // 해당 부서에 존재하는 사원들의 정보
            List<Emp> e_list = d.getEmp_list();
            System.out.println(d.getDname()+"-"+d.getDeptno()+"("+e_list.size()+")");
           
            for(Emp e : e_list){
                System.out.println(" --> "+ e.getEname()+"("+e.getJob()+")");
            }
        }
    }
}

----------------------------------- 결과 값 ----------------------------------------
ACCOUNTING-10(3)
 --> CLARK(MANAGER)
 --> KING(PRESIDENT)
 --> MILLER(CLERK)
RESEARCH-20(5)
 --> SMITH(CLERK)
 --> JONES(MANAGER)
 --> SCOTT(ANALYST)
 --> ADAMS(CLERK)
 --> FORD(ANALYST)
SALES-30(6)
 --> ALLEN(SALESMAN)
 --> WARD(SALESMAN)
 --> MARTIN(SALESMAN)
 --> BLAKE(MANAGER)
 --> TURNER(SALESMAN)
 --> JAMES(CLERK)
OPERATIONS-40(0)



11 19, 2008 10:57 11 19, 2008 10:57

Trackback URL : http://develop.sunshiny.co.kr/trackback/8

Leave a comment

« Previous : 1 : ... 373 : 374 : 375 : 376 : 377 : 378 : 379 : 380 : 381 : Next »

Recent Posts

  1. Oracle - 바인드 변수에 대하여(테스트)
  2. Oracle - 디폴트 롤, DBA, CONNECT,...
  3. Oracle - 권한 및 롤 관리
  4. Oracle - SQL*PLUS의 SYSDBA 접근 제어
  5. Oracle - PFILE, SPFILE 에 관하여

Recent Comments

  1. 네 답글 고맙습니다. 좋은 한주 보... sunshiny 05 14,
  2. 좋은 정보 잘 살펴보고 갑니다. ememoho 05 12,
  3. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  4. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  5. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   05 2012   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바소스
  13. 자바지기
  14. Ready System
  15. Solaris Freeware
  16. Linux-Site
  17. RedHat Korea
  18. 윈디하나의 솔라나라

Site Stats

TOTAL 245439 HIT
TODAY 145 HIT
YESTERDAY 139 HIT