[mybatis] mybatis(마이바티스)란? (mybatis 환경세팅)

 

mybatis란?


mybatis는 JDBC 프로그래밍을 단순화하기 위해 만들어졌다.

 

mybatis의 핵심

  • 개발과 유지보수가 쉽도록 소스 코드에 박혀있는 SQL을 별도의 파일로 분리하는 것이다.
  • 단순하고 반복적인 JDBC 코드를 캡슐화하여 데이터베이스 프로그래밍을 간결하게 만드는 것이다.

 

▶ProjectDao.java

		try {
			connection = ds.getConnection();
			stmt = connection.prepareStatement("UPDATE PROJECTS SET " 
											+ " PNAME=?," 
											+ " CONTENT=?," 
											+ " STA_DATE=?,"
											+ " END_DATE=?," 
											+ " STATE=?," 
											+ " TAGS=?" 
											+ " WHERE PNO=?");
			stmt.setString(1, project.getTitle());
			stmt.setString(2, project.getContent());
			stmt.setDate(3, new java.sql.Date(project.getStartDate().getTime()));
			stmt.setDate(4, new java.sql.Date(project.getEndDate().getTime()));
			stmt.setInt(5, project.getState());
			stmt.setString(6, project.getTags());
			stmt.setInt(7, project.getNo());

위 ProjectDao 클래스는 Java 코드와 SQL문이 섞여 있어 코드를 읽기가 어렵다. 또한 , SQL문을 만들고자 문자열과 더하기 연산자가 얽혀 있어 소스 코드가 지저분하고 SQL 구문 오류가 발생할 확률도 높다.

 

▶ProjectMapper.xml

update PROJECTS set
	PNAME=#{title},
    CONTENT=#{content},
    STA_DATE=#{startDate},
    END_DATE=#{endDate},
    STATE=#{state},
    TAGS=#{tags},
    where PNO=#{no}

mybatis를 활용하면 SQL을 별도의 파일로 분리하기 때문에 개발자가 SQL문을 더 쉽게 작성하고 관리하도록 도와주고, SQL의 작성을 DB 및 해당 업무 전문가에게 맡길 수도 있어 효율적이다.

 

 

 

 

 

 

 

 

mybatis 시나리오


  1. 데이터 처리를 위해 DAO는 mybatis에 제공하는 객체의 메소드를 호출한다.
  2. mybatis는 SQL문이 저장된 맵퍼 파일에서 데이터 처리에 필요한 SQL문을 찾는다.
  3. mybatis는 맵퍼 파일에서 찾은 SQL을 서버에 보내고자 JDBC 드라이버를 사용한다.
  4. JDBC 드라이버는 SQL문을 DB 서버로 보낸다.
  5. mybatis는 select문의 실행 결과를 값 객체에 담아서 반환한다. insert, update, delete 문인 경우 입력, 변경, 삭제된 레코드의 개수를 반환한다.

 

 

 

 

 

 

 

 

 

 

mybatis 환경 세팅


1. http://github.com/mybatis 에 접속하여 'mybatis-3'을 클릭한다.

 

 

 

2.[mybatis-3] > [README] > [Doawnload] > [최신 버전 mybatis -X.X.X.zip 링크 클릭]

 

 

 

 

3. [다운받은 mybatis-X.X.X.zip의 압축을 푼다.] > 압축 푼 파일 안에 [mybatis-X.X.X.jar] 파일과 [lib]폴더 안에 있는 파일들을 WEB-INF/lib 폴더에 복사한다.
이때, 중복 파일이 있으면 버전이 낮은 파일은 삭제해주어야 한다.

 

중복 파일이 있으면 버전이 낮은 파일을 삭제해준다는 방법은 다음과 같다.예를 들어 여기서 세 개의 라이브러리가 중복되는데 그 중에서 낮은 버전의 파일인 왼쪽에 빨간 박스들을 삭제해주면 된다.