seong

Spring에서 Oracle연결 및 초기 셋팅, 테이블 만들기 테스트 본문

Spring/SpringBoot

Spring에서 Oracle연결 및 초기 셋팅, 테이블 만들기 테스트

hyeonseong 2022. 8. 31. 14:12

1.  프로젝트 생성

2. 라이브러리 선택 하고 finish

3. properties  

server.port=8000
server.servlet.context-path=/

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=SCOTT
spring.datasource.password=TIGER

spring.jpa.hibernate.ddl-auto=create

4. build.gradle 에서 의존성 추가 (서버 꺼진 상태에서 추가해주기)

	implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '9.0.65'
   	implementation group: 'javax.servlet', name: 'jstl', version: '1.2'

5. webapp/WEB-INF/views  폴더 추가

6. index으로 초기에 설정한게 제대로 되는지 테스트 실행

여기 까지했는데 제대로 했는데 문제가 생겨있다면 , 오타 or DB가 꺼져있는 것이다 

7. IndexController 생성

package site.metacoding.orange.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class IndexController {

   @GetMapping("/index")
   public String index() {
      return "index";
   }
}

8. 웹에서 제대로 나오는지 확인


테이블 생성

properties 작성

server.port=8000
server.servlet.context-path=/

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=SCOTT
spring.datasource.password=TIGER

spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true

1.Board.java (테이블)

package site.metacoding.orange.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity // 테이블 생성 속성
public class Board {
	
	@Id // PK 설정
	@GeneratedValue(strategy = GenerationType.IDENTITY)// 시퀀스 자동 생성
	private Integer id;
	private String title;
	private String content;
	private String author;
}

2. BoardDao 작성 

package site.metacoding.orange.domain;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

// Dao를 자동 생성해주는 코드들.
@Repository // IOC 테이블이 띄워준다. 
public interface BoardDao extends JpaRepository<Board,Integer>{//

}

Jpa에서 Dao를 알아서 만들어 주기 때문에 위 처럼 작성해주면 Dao를 내가 직접 작성 하지 않아주어도된다.

<테이블명, PK 타입>을 넣어준다 

그리고 마지막에 @Repository 를 넣어주어야 Dao를 정상적으로 사용할 수 있다. 위의 코드는 문법 이기 때문에 우선 기억을 해두자.

BoardController.java

@Controller로 컨트롤러임을 명시 해주고, Dao를 사용하기 위해 생성자 주입을 해준다 .(@All~)

Insert 쿼리로 테스트 

Jpa에서 만들어준 Dao에서는 save가 Insert이다

확인

기본 전략이 x-www-form-이기 때문에 body에 담아서 보낸다. 

콘솔창에서 아래와 같이 나왔다면 된 것이다. 

DB창 가서 확인 

id 찾아 model에 담아서 view(jsp)에 들고가기 

model에 담아주기 

저장 하기 전 properties에서 설정 해줄것이 있다.

최초 테이블을 만들었으면 none로 바꾸어준다. 테이블을 계속 생성을 하는것을 방지

Get에서 받은 데이터 view로 뿌려주기  - jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
제목 : ${board.title}<br/>
내용 : ${board.content}<br/>
글쓴이 : ${board.author }<br/>
</body>
</html>

웹으로 뿌려준 데이터 확인