Java Framework MyBatis 기본 - selectList

2016.06.07 21:04

졸리운_곰 조회 수:493

MyBatis 기본 - selectList

JAVA/myBatis & iBatis 2013.10.26 14:58

package test.main;

 

import java.io.IOException;

import java.io.InputStream;

import java.util.List;

 

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

 

import test.dto.MembersDTO;

 

public class SelectListMain {

    public static void main(String[] args) {

        //    마이바티스 환경설정 파일 경로

        String res = "orm/mybatis/mybatis-config.xml";

        try {

            //    mybatis 환경설정 파일을 읽어오기 위한 스트림 객체

            InputStream is = Resources.getResourceAsStream(res);

            //    SqlSessionFactory객체 얻어오기

            SqlSessionFactory factory = 

                    new SqlSessionFactoryBuilder().build(is);

            //    Sql명령어를 실행하기 위한 SqlSession 객체 얻어오기

            SqlSession session = factory.openSession();

            List<MembersDTO> list = session.selectList("orm.mybatis.MemberMapper.listAll");

            

            for( MembersDTO dto : list ) {

                System.out.println("=================MEMBER DTO===============");

                System.out.println("아이디 : "+ dto.getId());

                System.out.println("비밀번호 : "+dto.getPwd());

                System.out.println("이메일 : "+ dto.getEmail());

                System.out.println("전화번호 : "+dto.getPhone());

                System.out.println("가입일 : "+ dto.getRegdate());

                System.out.println("=========================================");

            }

            

            session.close();    //    세션닫기    

        } catch (IOException e) {

            System.out.println(e.getMessage());

        }

        

    }

}

 

 

2. Mapper.xml 

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

<!DOCTYPE mapper

  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="orm.mybatis.MemberMapper">

 

<!-- select 추출된 컬럼값들을 저장할 resultType을 지정함 -->

    <select id="listAll" resultType="test.dto.MembersDTO">

        select * from members

    </select>

    

</mapper>

 

3. DTO 클래스

package test.dto;

 

import java.sql.Date;

 

public class MembersDTO {

 

    private String id;

    private String pwd;

    private String email;

    private String phone;

    private Date regdate;

    

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

    public MembersDTO() {

        

    }

 

    public MembersDTO(String id, String pwd, String email, String phone,

            Date regdate) {

        super();

        this.id = id;

        this.pwd = pwd;

        this.email = email;

        this.phone = phone;

        this.regdate = regdate;

    }

    

    public String getId() {

        return id;

    }

 

    public void setId(String id) {

        this.id = id;

    }

 

    public String getPwd() {

        return pwd;

    }

 

    public void setPwd(String pwd) {

        this.pwd = pwd;

    }

 

    public String getEmail() {

        return email;

    }

 

    public void setEmail(String email) {

        this.email = email;

    }

 

    public String getPhone() {

        return phone;

    }

 

    public void setPhone(String phone) {

        this.phone = phone;

    }

 

    public Date getRegdate() {

        return regdate;

    }

 

    public void setRegdate(Date regdate) {

        this.regdate = regdate;

    }

}

 

 

MyBatis 를 이용하여 여러건을 가져올때 ( 예) SELECT * FROM USERS ) 레코드의 건수들을 자바의 List 로 반환 받는 방법 이다 . 

순차적으로 session 객체를 통한 쿼리실행 -> Mapper.xml 에서 내부적으로 DTO 클래스에 set 을 해주고 -> set 해준 DTO 객체를 

내부적으로 List 에 add 시킨뒤 반환 하는걸로보인다. 

 

 

 

[결과]

mybatisSelectListResult.PNG

 

[출처] http://devsh.tistory.com/entry/MyBatis-%EA%B8%B0%EB%B3%B8-selectList

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
62 [maven 설정] Jackson Databind » 2.6.7.1 졸리운_곰 2020.10.05 187
61 [maven 설정] MongoDB Java Driver » 3.12.6 졸리운_곰 2020.10.05 175
60 Maven 에 직접 jar 라이브러리 추가하기!!! ( 외부 repository 사용이 안될때) + scope 정리 졸리운_곰 2020.10.05 169
59 추상(abstract) 클래스가 필요한 기본적인 이유 졸리운_곰 2019.10.30 247
58 Java and JMX - Building Manageable Systems secret 졸리운_곰 2019.05.26 0
57 [GC] 강제로 GC시키기Java 메모리 full 발생시 강제로 GC 시키기 졸리운_곰 2019.01.22 377
56 Java Map 반복(Iteration)시키는 3가지 방법 졸리운_곰 2019.01.01 347
55 UML: 클래스 다이어그램과 소스코드 매핑 file 졸리운_곰 2018.04.30 381
54 lombok에 대해서 알아보자 file 졸리운_곰 2018.04.24 292
53 lombok을 잘 써보자! (2) 졸리운_곰 2018.04.24 318
52 lombok을 잘 써보자! (1) 졸리운_곰 2018.04.24 366
51 [Java] Quartz (쿼츠)를 사용하여 자바 스케줄링(scheduling) 하기 졸리운_곰 2018.02.12 509
50 [subclipse] svn에서 무시할 파일 설정하기 svn:ignore property 설정 file 졸리운_곰 2017.09.24 286
49 자바에서 C# 호출하기 file 졸리운_곰 2017.04.26 474
48 Comparison between C# and Java - DiVA.pdf file 졸리운_곰 2017.04.25 1017
47 Java Annotation: 인터페이스 강요로부터 자유를… file 졸리운_곰 2017.03.20 302
46 Java Naming conventions 자바 명명 규칙 졸리운_곰 2017.03.04 272
45 Timer 클래스를 이용한 작업 스케쥴링 졸리운_곰 2016.11.14 290
44 자바 8 살펴보기 file 졸리운_곰 2016.05.23 432
43 Java 8 개선 사항 관련 글 모음 졸리운_곰 2016.05.23 409
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED