-
2. 기본 사용법 (MySql, Oracle)Develpment/MyBatis 2020. 9. 13. 21:19
1. 기본 구조
1) Value Object 정의
- 원하는 컬럼명들과 동일한 이름으로 "멤버변수" 선언
2) Mapper 정의
- Sql Query 정의
3) Config 정의
- RDBMS 지정
- Mapper 지정
4) 프로그램에서 config를 가져와서 사용.
2. 사용 예제
MyBatis doc ( http://www.mybatis.org/mybatis-3/ko/index.html ) 참고.
예제에 사용된 테이블
2-1. VO Class
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package ex1.vo;public class EmpVO {// 테이블로 부터 가져오고자 하는// 컬럼들을 멤버 변수로 정의한다.private String employee_id, first_name, email, salary, department_id;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 getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getSalary() {return salary;}public void setSalary(String salary) {this.salary = salary;}public String getDepartment_id() {return department_id;}public void setDepartment_id(String department_id) {this.department_id = department_id;}}cs Field 명과 VO Class의 멤버 변수명이 일치해야 한다.
( ex1.vo.EmpVO.java )
2-2. Mapper
1234567891011<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="emp"><select id="all" resultType="ex1.vo.EmpVO">select * from employees</select></mapper>namespace : 구분을 위한 namespace
id : 구분을 위한 id
resultType : 리턴값으로 사용될 VO
( ex1/mapper/emp.xml )
2-3. Config ( Mysql, Oracle 순서)
12345678910111213141516171819202122<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default=""> <!-- DB configure --><environment id=""><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://접속아이피:허용포트/디비명"/><property name="username" value="접속계정"/><property name="password" value="암호"/></dataSource></environment></environments><mappers><mapper resource="ex1/mapper/emp.xml"/> <!-- mapper --></mappers></configuration>cs 12345678910111213141516171819202122<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default=""> <!-- DB configure --><environment id=""><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="oracle.jdbc.OracleDriver"/><property name="url" value="jdbc:oracle:thin:@접속아이피:허용포트:디비명"/><property name="username" value="접속계정"/><property name="password" value="암호"/></dataSource></environment></environments><mappers><mapper resource="ex1/mapper/emp.xml"/> <!-- mapper --></mappers></configuration>cs 각각 접속아이피, 포트, 디비명, 계정, 암호를 넣어준다.
( 외부에서 접속할 경우 외부접속 허용된 계정, 포트가 필요 )
resource 에 "2-2"에서 작성한 Mapper를 넣어준다.
2-4. Application 사용 예제
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package ex1.client;import java.io.IOException;import java.io.Reader;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 ex1.vo.EmpVO;public class Main {public static void main(String[] args) throws IOException {// 1) MyBatis의 환경설정 파일과 연결할 스트림Reader r = Resources.getResourceAsReader("ex1/config/config.xml");// 2) 연결된 파일로 부터 정보를 인식 - factory 생성//SqlSessionFactoryBuilder sb = new SqlSessionFactoryBuilder();SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(r);// factory가 생성 되었으므로 더이상 r은 필요가 없다.r.close();// 3) factory를 통해서 SqlSession을 얻어낸다.SqlSession ss = factory.openSession();// 4) SqlSession을 통하여 원하는 SQL문을 호출하여 결과를 얻어낸다.List<EmpVO> list = ss.selectList("emp.all");// 5) 결과 처리for(EmpVO vo : list){System.out.println(vo.getEmployee_id() + "/" +vo.getEmail() + "/" +vo.getDepartment_id() + "/" +vo.getFirst_name() + "/" +vo.getSalary());}// 6) 사용된 세션닫기ss.close();}}cs 'Develpment > MyBatis' 카테고리의 다른 글
3. MyBatis로 값 전달하기. (0) 2020.09.13 1. 기본 설정 (MyBatis, eclipse, MySql) (0) 2020.09.13