본문 바로가기
Programming/Java + Spring

[Spring] 게시판 실습 / 준비 단계

by 콩king 2022. 9. 27.

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

댓글