pom.xml 설정
▶ mvnrepository에서 라이브러리 받아와서 dependency에 넣어준다
▶ ojdbc >> DB 연결 / jdbc / mybatis/ mybatis-spring
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<!-- *** SPRING JDBC **** -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
순서
설정파일--------------------------------------------------------------------
▶ pom.xml
>> 외부에서 사용할 라이브러리들을 가져와야 함
>> jdbc / jdbc-스프링 연결 / mybatis / mybatis-spring
▶ web.xml
>> 설정파일 들을 세팅
>> <servlert-mapping>
<url-pattern>*.do</url-pattern> 로 끝나는 걸 서블릿과 연결하겠다
>> 특정 코드로 끝나는 url 호출이 있을경우
>> servlet-name에 지정되어 있는 이름의 servlet을 호출 하겠다(servlet-context.xml )
>> utf-8 설절해도 한글 깨질경우 여기서 코드작성해주면됨
▶ servlet-context.xml
>> <annotation-driven /> : @컨트롤러 스캔
>> /WEB-INF/views/ + 뷰(view) 이름 + .jsp : 파일을 알아서 찾는다
>> component-scan
base package 기준으로 클래스들을 스캔하여 빈으로 등록한다.
빈으로 등록 될 준비를 마친 클래스들을 스캔하여, 빈으로 등록해준다
@어노테이션 되어있는 것들
▶ root-context.xml
>> servlet에 관련된 설정은 servlet-context.xml에 servlet 외에 설정에 관련된 내용은 root-context에 적음
>> 자동으로 만들어지는 빈 말고 내가 사용하는 빈을 여기다가 세팅
>> 1. DB 연결
>> 2. dataSource
DB 연결 / 마이바티스-config >> 별칭 들어 있음 / 맵퍼 >> sql 문장들
>> 3. sqlSessionTemplate
위에거를 다 가지고 있는 객체를 최종적으로 하나 만든거임
Mybatis 쿼리문을 수행해주는 역할을 함
DAO 클래스에 직접 sqlSession 객체를 선언하고 @Autowired로 의존주입하여 쿼리문을 수행하는 방식
>> root-context.xml은 그냥 외워야함 // 사전처럼 사용
실행될때--------------------------------------------------------------------
컨트롤 + 서비스 연결-----------------------
서비스 + 다오 연결-------------------------
다오+ 빈 연결-------------------------------
▶ index.jsp
>> <a href="test.do"> 테스트</a>
.do 라고 써져있으니까 서블릿에서 찾음 >> web.xml 에서 개입
특정 코드로 끝나는 url 호출이 있을경우
servlet-name에 지정되어 있는 이름의 servlet을 호출 하겠다(servlet-context.xml )
컨트롤러로 찾아 줄께
▶ @Controller 자바 파일
>> @Controller안에 @RequestMapping("test.do") 찾음
>> @Autowired
private BoardService boardService;
빈컨테이너에 있는 데이터를 가져올꺼임
빈이 된 것만 데리고 올 수 있음 >> @Service("boardService") 되어있음
불리때 마다 객체 안들게 하기 위해 @Autowired
>> return "test"
파일 찾아줌 >> 서블릿-context.xml에서 앞뒤로 주소 붙여줌
>> System.out.println( boardService.timeTest() );
▶ BoardSerivce 자바 파일
>> @Service("boardService") 되어 있음 >> servlet-context.xml 가 스캔해서 알고 있음
>> @Autowired
private BoardDAO boardDAO;
boarDAO도 빈 되어있어야 함 >> servlet-context.xml 가 스캔해서 알고 있음
>> timeTest()함수 실행
return boardDAO.timeTest();
▶ DAO
>> @Repository("boardDAO") 되어 있음 >> servlet-context.xml 가 스캔해서 알고 있음
Repository : DB랑 연결하기 위한 객체
>> @Autowired
private SqlSessionTemplate mybatis;
DB를 연결하기 위한 모든 객체를 가지고 있는 빈 >> root-context.xml에 있음
>> public String timeTest() {
System.out.println("DAO 테스트 중");
return mybatis.selectOne("testMapper.getTime"); //(namespace명.id명)
}
>>selectOne >> select문을 실행 할 수 한개의 레코드를 징한 타입으로 반환한다
▶ Mapper
<mapper namespace="testMapper">
<select id="getTime" resultType="String">
select sysdate from dual
</select>
</mapper>
web.xml >> 한글인코딩
<!-- 한글인코딩 -->
<filter>
<filter-name>charEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
추가 설명
▶ DAO도 빈에 연결해야함 @레파지토리 DB랑 연결하기 위한 객체라서
▶ index.jsp >> 컨트롤러 >> service >> DAO(실제로 DB와 접근만 하는 것)
▶ mybatis 를 이용해서 DB에 접근하고 싶음
>> webapp >> root-context.xml (applicationContext.xml 같은거임)
>> DB에 접근하기 위한 설정을 해 놓음
▶ resources 폴더 안에
>> mybatic-config.xml
>> DB에 연결하는 과정은 root-context.xml에 설정되어 있음
>> 별칭만 만들자
>> Mapper.xml
>> namespace 중요함!!! >> ( namespace명.id명 ) sql 문장 호출
>> sql 문장 작성되어 있음
index.jsp
▶ 테스트 클릭 했을 시
Controller
Service
DAO
mapper
▶ 차례대로 return 됨.
출력
▶ test.jsp 파일로 화면 전환됨
'Programming > Java + Spring' 카테고리의 다른 글
[Spring] 게시판 만들기 / 글 작성 (0) | 2022.09.27 |
---|---|
[Spring] 게시판 만들기 / 글 목록 가기 (0) | 2022.09.27 |
[Spring] DI 실습 (0) | 2022.09.26 |
[Spring] DI 의존성 주입 (0) | 2022.09.26 |
[Spring] 프레임워크 (0) | 2022.09.26 |
댓글