ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 01. MyBatis 설정 (Mysql )
    MyBatis 2021. 11. 30. 21:39
    반응형

    ※ MyBatis 설정 순서


    01. MyBatis 관련 라이브러리 받기

    02. MyBatis 관련 라이브러리 프로젝트에 추가

    03. MyBatis 관련 셋팅

       03-1. mybatis-config.xml (DB 연결 정보)

       03-2. SqlSessionFactory 생성

       03-3. mapper, VO 생성

    04. MyBatis 테스트

     


     

    01. MyBatis 관련 라이브러리 받기


    아래 사이트에 접속하여  MyBatis관련 라이브러리를 받아줍니다.

    https://github.com/mybatis/mybatis-3/releases

     

    Releases · mybatis/mybatis-3

    MyBatis SQL mapper framework for Java. Contribute to mybatis/mybatis-3 development by creating an account on GitHub.

    github.com

     

    사이트에서 MyBatis-3.5.7.zip 파일을 클릭하여 받아줍니다. (버전 상관 x)

     

    MyBatis-3.5.7.zip 파일을 받아서 열어보면 mybatis-3.5.7.jar, mybatis-3.5.7.pdf가 있습니다.

    mybatis-3.5.7.pdf은 영문으로 된 매뉴얼 파일로 개발 시 참고하시면 됩니다.

    저희가 실질적으로 사용할 파일은 mybatis-3.5.7.jar 입니다. 복사하여 자신의 프로젝트에 추가하여 줍니다.

     


     

    02. MyBatis 관련 라이브러리 프로젝트에 추가


    src/main/webapp/WEB-INF/lib 아래에 넣어주시면 됩니다.

    그리고 프로젝트에 정상적으로 추가가 되었는지 확인해 줍니다.

    프로젝트 우클릭 후 properties을 클릭하여 줍니다.

    아래와 같이 창이 표출이되면 java Build Path 클릭 후 Libraries를 선택하여 내가 추가한 파일(mybatis-3.5.7.jar)가 정상적으로 추가 되었는지 확인하여 줍니다. 아래와 같이 추가되어있으면 정상입니다.

     


     

    03. MyBatis 관련 셋팅


    pakage 정보

    03-1. mybatis-config.xml (DB 연결 정보)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
      <typeAliases>
      	<typeAlias alias="userInfo" type="common.user.UserInfoVO"/>
      </typeAliases>
      <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://192.168.0.2:3306/study_db?useSSL=false&amp;serverTimezone=Asia/Seoul&amp;characterEncoding=UTF-8"/>
            <property name="username" value="userId"/>
            <property name="password" value="password"/>
          </dataSource>
        </environment>
      </environments>
      <mappers>
        <mapper resource="basicProject/mapper/userInfoMapper.xml"/>
        <mapper class="common.user.mybatis.UserMapper" />
      </mappers>
    </configuration>

     

    03-2. SqlSessionFactory 생성

    package database;
    
    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 common.user.UserInfoVO;
    import common.user.mybatis.UserMapper;
    
    public class DatabaseConnectionTest {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		SqlSessionFactory sqlSessionFactory = mybitisBbConnenction(); 
    		List<UserInfoVO> userInfoList = null;
    		try (SqlSession session = sqlSessionFactory.openSession()){
    			//xml 맵핑
    			userInfoList = session.selectList("basicProject.mapper.userInfoMapper.selectUserInfo");
    			//java 맵핑
    //			userInfoList = session.getMapper(UserMapper.class).selectUser();
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println(e.getMessage());
    		}
    		
    		int i = 0;
    		for(UserInfoVO dto : userInfoList) {
    			System.out.println(i++);
    			System.out.print(dto.getAge()+ " / ");
    			System.out.println(dto.getName());
    		}
    	}
    	
    	
    	static SqlSessionFactory sqlSessionFactory;
    	
    	private static SqlSessionFactory mybitisBbConnenction() {
    		
    		//mybatis 설정파일위치
    		String resource = "./basicProject/mapper/mybatis-config.xml";
    		InputStream inputStream;
    		try {
    			inputStream = Resources.getResourceAsStream(resource);
    			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    			return null;
    		}
    		
    		return sqlSessionFactory;
    	}
    
    }

     

    03-3. mapper, VO  생성

    mapper는 두 종류로 사용이 가능합니다. java, xml 장단점이 있으니 그에 맞게 사용하면됩니다. 장단점에 대해서는 차후에 추가적으로 확인해보도록 하겠습니다.

    ※ java를 사용할 경우 위  "SqlSessionFactory 생성"에서 주석처리 되어있는 "userInfoList = session.getMapper(UserMapper.class).selectUser();" 부분을 사용하여 주시면 됩니다.

    03-3-1. java 어노테이션 사용

    package common.user.mybatis;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Select;
    
    import common.user.UserInfoVO;
    
    public interface UserMapper {
    
    	@Select("Select * from T_USER_MST")
    	List<UserInfoVO> selectUser();
    }

     

    03-3-2. 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="basicProject.mapper.userInfoMapper">
      <select id="selectUserInfo" resultType="userInfo">
        SELECT * FROM T_USER_MST
      </select>
    </mapper>

     

    03-3-3. VO

    package common.user;
    
    public class UserInfoVO {
    
    	private String id;
    	private String name;
    	private String age;
    	private String gender;
    	private	int index;
    	
    	
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getAge() {
    		return age;
    	}
    	public void setAge(String age) {
    		this.age = age;
    	}
    	public String getGender() {
    		return gender;
    	}
    	public void setGender(String gender) {
    		this.gender = gender;
    	}
    	public int getIndex() {
    		return index;
    	}
    	public void setIndex(int index) {
    		this.index = index;
    	}
    	
    }

     

    04. MyBatis 테스트

    SqlSessionFactory 생성에서 작성한 DatabaseConnectionTest 클래스를 실행하여 정보가 정상적으로 불러온다면 기본적인 셋팅이 완료되었습니다.

    반응형

    'MyBatis' 카테고리의 다른 글

    03. MyBatis 로그 남기기(Log4j 2)  (0) 2021.12.07
    02. MyBatis properties 설정하기  (0) 2021.12.01
    00. 마이바티스(Mybatis) 란?  (0) 2021.11.29

    댓글

Designed by Tistory.