반응형
여승철
INTP 개발자
여승철
  • 분류 전체보기 (376)
    • CS (16)
      • 면접 준비 (7)
      • 운영체제 (0)
      • 네트워크 (2)
      • HTTP (6)
      • 스프링(Spring) IoC 컨테이너 (0)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Java (43)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • ETC (11)

블로그 메뉴

  • 홈
  • 태그

인기 글

태그

  • HTTP
  • JSTL
  • 이펙티브 자바
  • ubuntu
  • Dao
  • querydsl
  • 로그인
  • 디자인 패턴
  • 스트림
  • EC2
  • 환경 세팅
  • 게시판
  • Spring Batch
  • servlet
  • mybatis
  • controller
  • 맥킨지
  • jsp
  • JDBC
  • 회원 관리

최근 댓글

최근 글

hELLO· Designed By 정상우.
여승철

INTP 개발자

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

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

2022. 7. 20. 00:21
반응형

 

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 폴더에 복사한다.
이때, 중복 파일이 있으면 버전이 낮은 파일은 삭제해주어야 한다.

 

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

 

 

 

 

 

 

 

 

 

반응형
저작자표시 (새창열림)

'MyBatis' 카테고리의 다른 글

MyBatis 동적 SQL 사용 (예시. 항목 별 정렬)  (0) 2022.07.21
[mybatis] mybatis 설정 파일  (0) 2022.07.21
[mybatis] SQL mapper(맵퍼) 파일  (0) 2022.07.21
[mybatis] mybatis 적용  (0) 2022.07.20
퍼시스턴스 프레임워크(Persistence Framework)란?  (0) 2022.07.19
    여승철
    여승철

    티스토리툴바