본문 바로가기
Spring/스프링_정리

mybatis

by 숭늉다섯 2024. 1. 19.
mybatis?
자바객체와 SQL 사이의 관계를 쉽게 다룰 수 있도록 해주는 프레임 워크 

 

Mybatis API

  • SqlSessionFactoryBuilder 클래스 : build() 메소드를 통해 mybatis-config를 로딩하여 SqlSessionFactory 객체를 생성한다.
  • SqlSessionFactory 클래스 : SqlSession 객체에 대한 팩토리 객체다. 이 객체의 openSession() 이라는 메소드를 통해 SqlSession 객체를 얻을 수 있다.

 

builld.gradle 에 추가

implementation 'org.mybatis:mybatis:3.5.6'

 

mapper 패키지 아래 config.xml

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

https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="mybatis-config/db.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mybatis-config/mapper/BookMapper.xml"/>
    </mappers>
</configuration>
 

 

mybatis를 사용하면 controller의 코드 길이는 줄어든다..

더보기

주석문을 제외한 나머지 코드만 존재한다. 

직접 코드를 추가 -> 정보를 list로 받아서 저장 -> list의 값만 반환해줌

 

이렇게 간단한 코드로 만들 수 있다...!

public String requestHandler(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       // BookDAO dao =new BookDAO();
        BookMyBatisDAO dao =new BookMyBatisDAO();
        List<BookDTO> list=dao.bookList();


//        List<BoradDTO> list = new ArrayList<>();
//
//        list.add(new BoradDTO(1, "게시판 연습1", "게시판 연습1", "관리자", new Date(), 0));
//        list.add(new BoradDTO(2, "게시판 연습2", "게시판 연습1", "관리자", new Date(), 0));
//        list.add(new BoradDTO(3, "게시판 연습2", "게시판 연습1", "관리자", new Date(), 0));



      // 매우 중요  req.setAttribute("list",list);
        req.setAttribute("list",list);
     //   RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/views/list.jsp");
        //View Resolver API : 경로를 지정해주는 것?

        //객체바인딩 : controller -> view로 데이터를 보내는 것
       // rd.forward(req, resp);
        //return "/WEB-INF/views/list.jsp";
        return "list"; // -> 뷰의 논리적인 이름만 넘기기
    }