Mybatis 로드 하는 법

이승철·2021년 8월 22일
0
  1. src>main>resources>mybatis-config.xml 생성
<?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>
    <settings>
        <setting name="logImpl" value="LOG4J2"/>
    </settings>
    <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://localhost:3306/bit08db"/> //db주소
                <property name="username" value="bituser"/> //아이디
                <property name="password" value="bituser"/>
//패스워드            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/zerock/bitboard/dao/TimeMapper.xml"></mapper>
        <mapper resource="org/zerock/bitboard/dao/BoardMapper.xml"></mapper>
        <mapper resource="org/zerock/bitboard/dao/MemberMapper.xml"></mapper> // sql 구문이 들어있는 xml 파일의 경로
    </mappers>
</configuration>
  1. src>main>resources>com>example>pratice>dao>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="com.example.bitboardpractice.dao.BoardMapper">
//Mapper파일의 경로    
<select id="selectList" resultType="com.example.bitboardpractice.dto.BoardDTO">
        select * from board where
    </select>
</mapper>
  1. src>main>java>com>example>bitboardpractice>dao>MyBatisLoader.enum
package org.zerock.bitboard.dao;

import lombok.extern.log4j.Log4j2;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public enum MybatisLoader {
    INSTANCE;

    private SqlSessionFactory sqlSessionFactory;

    MybatisLoader() {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public SqlSessionFactory getFactory() {
        return this.sqlSessionFactory;
    }
}

4.src>main>java>com>example>bitboardpractice>dao>boarddao.class

public enum BoardDAO {
    INSTANCE;

    private final String PREFIX="com.example.bitboardpractice.BoardMapper";

    public List<BoardDTO> selectList() {
        List<BoardDTO> list=null;

        try {
            SqlSession sqlSession = MybatisLoader.INSTANCE.getSqlSessionFactory().openSession(true);
            list = sqlSession.selectList(PREFIX+".selectList");
        } catch (Exception e) {
            log.error(e);
        }
        return list;
    }
}

0개의 댓글