응용 프로그래밍 및 화면 구현

MyBatis

황샐리 2022. 4. 25. 14:18

오랜만에 대면수업을 해볼게ㅛㅇ.

오늘은 마이바티스 세팅및 설치 하겠습니다.

mybatis.org

들어갑니다.

MyBatis 3 SQL Mapping Framework for Java

자 여기 보이시나아ㅛ 이거를 다운로드 할게ㅛㅇ

마이바티스는 무엇인가?

마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

 

모든 MyBatis 애플리케이션은 SqlSessionFactory 인스턴스를 중심으로 합니다.

이것이 예제 소스코드입니다.

 

이정도로만 두고요.

이클립스에서 한번 실행해볼게요.

뉴 다이나믹 프로그램 해주고요

여기서 패키지를 만들고 xml파일을 생성하여 줍니다.

거기에 게팅 세팅을 고대로 불러와 줍니다.

구성 XML 파일에는 데이터베이스 연결 인스턴스를 획득하기 위한 DataSource와 트랜잭션 범위 및 제어 방법을 결정하기 위한 TransactionManager를 포함하여 MyBatis 시스템의 핵심에 대한 설정이 포함되어 있습니다. XML 구성 파일의 전체 세부 정보는 이 문서의 뒷부분에서 찾을 수 있습니다.

<?xml version="1.0" encoding="UTF-8" ?>
http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <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="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

이렇게 해주면 됩니다.

 

properties 파일 만들어 주고요

다른 패키지를 생성하영 리스너도 만들어 줍니다. 계속해서 바티스 홈페이지에 있는 게팅세트 페이지에 있는 소스코드를 계속해서 사용합니다.

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
  new SqlSessionFactoryBuilder().build(inputStream);

ㅇ이렇게요. 이렇게 세팅해주고 다 임포트와 트라이 캐치를 해줍니다. 앞선 xml파일에 있는 매핑때문에 오류가 났으므로 지우고 계속합니다.

세션 팩토리가 계속 돌아가기 위해서 sce선언과 어트리뷰트를 해줍니다. 자 이제 이야기한것을 아래 코드로 참조하여 보겠습니다.

package nowoncontroller;

import java.io.IOException;
import java.io.InputStream;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class NowonListener implements ServletContextListener {

    public NowonListener() {
    }

	
    public void contextDestroyed(ServletContextEvent sce)  { 
    }

    public void contextInitialized(ServletContextEvent sce)  { 
    	String resource = "org/mybatis/example/mybatis-config.xml";
    	InputStream inputStream;
		try {
			inputStream = Resources.getResourceAsStream(resource);
	    	SqlSessionFactory sqlSessionFactory =
	    	    	  new SqlSessionFactoryBuilder().build(inputStream);
	    	System.out.println(sqlSessionFactory);
	    	
	    	sce.getServletContext().setAttribute("ssf", sqlSessionFactory);
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
	
}

 

매퍼 패키지를 다시 만들어서 게팅스타터에서 또 복사해줍니다.

Exploring Mapped SQL Statements

여기꺼

<?xml version="1.0" encoding="UTF-8" ?>
http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

당연히 xml파일을 만들고 그 안에 넣는것임. 지금 셀렉트는 쓰지 않으니 삭제해도 무방합니다~

저 셀렉트 태그 자리에 인서트. 업데이트. 딜리트 등등을 넣을 수 있습니다.

 

 

 

지금까지의 환경설정은 끝이 났습니다.

마이바티스를 써서 다른점은 위에거와 라이브러리에 마이바티스를 넣는것 뿐입니다.

암튼 그래서 데이터베이스에 정보 생성하기 성공~!!