- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
Java Framework MyBatis 기본 - selectList
2016.06.07 21:04
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;
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 시킨뒤 반환 하는걸로보인다.
[결과]
[출처] http://devsh.tistory.com/entry/MyBatis-%EA%B8%B0%EB%B3%B8-selectList
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.