MyBatis
자동으로 Connection close() 가능
MyBatis 내부적으로 PreparedStatement 처리
#prop)와 같이 속성을 지정하면 내부적으로 자동 처리
리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리
Mapper 설정
Mapper를 작성해 주었다면 MyBatis가 동작할 때 Mapper를 인식할 수 있도록
root context.xml에 추가적인 설정이 필요합니다.
가장 간단한 방식은 이 라는 태그를 이용하는 것입니다.
Mapper (SQL과 동일)
Mapper를 XML과 인터페이스 + 어노테이션의 형태로 작 성할 수 있다
Mapper를 작성하는 작업은 XML을 이용
Interface 구성 요소
추상메서드 - 구현해야 될 메소드를 가이드 해줌 / 오버라이딩해서 재구현해야함 (강제적)
정적메서드 -인터페이스에서 제공 (절재적)
디폴트 메서드 - 인터페이스에서 기본적으로 제공 (선택적)
상수 - 인터페이스에서 정한 값을 참조 (절대적)
@Setter(onMethod_ = @Autowired)는
set메소드와 get메소드를 한번에 정의 내릴 수 있도록 해준다.
XML 매퍼
MyBatis-Spring의 경우 Mapper 인터페이 스와 XML을 동시에 이용할 수 있습니다.
XML은 쿼리다.
XML 작성법
태그의 id 속성의 값은 메서드의 이름과 동일하게 맞춰야 한다.
〈select> 태 그의 경우 resultType 속성을 가짐
이 값은 인터페이스에 선언된 메서드의 리턴 타입과 동일
<?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="org.zerock.mapper.TimeMapper">
<select id = "getTime2" resultType="String">
SELECT sysdate FROM dual
</select>
</mapper>
스프링 MVC
Spring MVC는 Servlet/Jsp와 개발자의 코드영역에 중간 역활이다.
스프링의 기본 구조
서블릿
request와 response 요청과 응답을 사용한다.
Java 기반이라서 HTML이 존재하지 않음
스프링 MVC의 Controller
•HttpServletRequest, HttpServletResponse 를 거의 사용할 필요 없이 필요한 기능 구현
• 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능
• GET 방식, POST 방식 등 전송 방식에 대한 처리를 @어노테이션으로 처리 가능
• 상속/인터페이스 방식 대신에 @어노테이션만으로도 필요한 설정 가능
@RequestMapping은 현재 클래스의 모든 메서드들의 기본적인 URL 경로다
모든 요청은 URL이다.
'/sample/* -> *는 경로
/sample/aaa
request.getParameter()
파라미터가 자동으로 수집되는 기능
SampleDTO클래스는 Lombok의 @Data 어노테이션을 이용해서 처리
@Data 를 이용하게 되면 getter/setter, equals( ), toString() 등의 메서드를 자동 생성
SampleController의 메서드가
SampleDTO를 파라미터로 사용하게 되면 자동으로 setter 메서드가 동작
Controller의 리턴 타입
String: jsp를 이용하는 경우에는 jsp 파일의 경로와 파일이름을 나타내기 위해서 사용합니다.
void: 호출하는 URL과 동일한 이름의 jsp를 의미합니다.
Controller는 무조건 JSP로 출력한다.
'프로그래밍 공부' 카테고리의 다른 글
2022년 6월 21일 스프링 복습 (0) | 2022.06.21 |
---|---|
2022년 6월 20일 스프링 복습 (0) | 2022.06.20 |
2022년 6월 15일 Spring (0) | 2022.06.15 |
2022년 6월 14일 비지니스 계층 (0) | 2022.06.14 |
2022년 6월 10일 Spring (0) | 2022.06.10 |