[이전 글]
2021/01/11 - [IT/spring] - [투표사이트만들기] MySQL Workbench - 4
[투표사이트만들기] MySQL Workbench - 4
[이전 글] 2021/01/11 - [IT/spring] - [투표사이트만들기] Eclipse에서 Thymeleaf 설치하기 - 3 [투표사이트만들기] Eclipse에서 Thymeleaf 설치하기 - 3 [이전 글] 2021/01/12 - [IT/spring] - [투표사이트만들..
song-yujin.tistory.com
5. Spring boot + Thymeleaf + JPA + MySQL 개발
개발 환경 설정까지 다 끝났으니 이제 한번 간단하게 실습? 해보려고 한다.
JPA는 goddaehee.tistory.com/209 블로그 참고하면 좋을 것 같다ㅎㅎ (블로그님 감사합니당)
천천히 따라오기만 하면 쉽.. 다..
개발해볼 것은!!! 목표는!!!
- voteDB에서 sysadmin 테이블에 관리자 아이디와 관리자 카테고리 전체를 조회하여 화면에 나오도록 할 것
[결과 화면]
이제 시작..!🙌
이전에 이미 생성한 VotingHomePage 프로젝트를 보면 application.properites를 볼 수 있다.
.properites 보다 .yml 쓰는 걸 추천한다고 선배한테 들어서 바꿀 것이다.
spring:
datasource:
url: jdbc:mysql://localhost:3306/voteDB?serverTimezone=UTC
username: yujin
password: 1234
jpa:
hibernate:
ddl-auto: update
show-sql: true
thymeleaf:
prefix: classpath:templates/
suffix: .html
cache: false
그리고 이렇게 설정을 해준다. 3번째 줄에서 voteDB는 데이터베이스 이름이다. 알맞게 변경해줘야 함!
username과 password도 ..!
소스코드는 접은 글로 사진 아래에 같이 첨부했다.
그리고 아까 build.gradle에서 타임리프 의존성도 따로 추가했으니 Pass!
controller, dao, dto, service 패키지를 순서대로 일단 만들어준다.
-
dao.UserRepository (class)
package com.example.demo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.example.demo.dto.UserDTO;
@Repository
public interface UserRepository extends JpaRepository<UserDTO, Integer>{
}
그리고 dao에서 UserRepository 인터페이스를 만들어준다.
[코드 설명]
코드를 보면 위에 @Repository를 붙인다.
Repository는 JPA와 같은 ORM을 사용하게 되면 객체 단위로 테이블을 관리한다. (DAO 역할을 대신함)
extends JpaRepository<UserDTO, Integer> => JPA 인터페이스를 확장을 해야 그 안에 메서드를 사용할 수 있다.
안에 <UserDTO, Integer>는 사용할 DTO와 그 테이블의 PK 데이터 타입을 작성한다.
-
service.UserService (interface)
package com.example.demo.service;
import java.util.List;
import com.example.demo.dto.UserDTO;
public interface UserService {
List<UserDTO> getAllUser();
}
-
service.UserServiceImpl (class)
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.dao.UserRepository;
import com.example.demo.dto.UserDTO;
@Service
public class UserServiceImpl implements UserService{
@Autowired //자동 연결
private UserRepository userRepository;
@Override
public List<UserDTO> getAllUser() {
return userRepository.findAll();
}
}
[코드 설명]
DB로부터 UserDTO를 list로 가져오기 위한 메소드를 작성한다.
(인터페이스랑 인터페이스 구현 객체 같이 올림)
-
dto.UserDTO (class)
package com.example.demo.dto;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Entity
@Table(name = "sysadmin")
@Data
public class UserDTO {
@Id
@Column(name = "ADMIN_SEQ")
private int adminSeq;
@Column(name = "ADMIN_CATG")
private String adminCatg;
@Column(name = "ADMIN_ID")
private String adminID;
@Column(name = "ADMMIN_PW")
private String adminPW;
}
[코드 설명]
가져올 sysadmin 테이블의 정보를 작성해준다.
12줄은 테이블 이름, 16줄 @Id는 adminSeq 이 이 테이블의 PK라는 것을 의미한다.
-
controller.MainController(class)
package com.example.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import com.example.demo.dto.UserDTO;
import com.example.demo.service.UserService;
@Controller
public class MainController {
@Autowired
private UserService userService;
@GetMapping(value = "/")
public ModelAndView main() {
ModelAndView mv = new ModelAndView();
List<UserDTO> userList = userService.getAllUser();
mv.addObject("userList", userList);
mv.setViewName("index");
return mv;
}
}
[코드 설명]
ModelAndView는 Model 인터페이스를 구현한 클래스로 객체 데이터를 뷰로 넘기는 데 사용을 한다.
-
templates.index(html)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>테스트</h1>
<tr th:each="sysadmin : ${userList}">
<td th:text="'id : ' + ${sysadmin.adminID}"></td>
<td th:text="'admin catg : ' + ${sysadmin.adminCatg}"></td>
<p/>
</tr>
</body>
</html>
알맞게 작성해주면 끝이다.
실행은 프로젝트에서 우클릭해서 Run As > Spring Boot App을 해주면 된다.
그러면 앞에 있는 [결과 화면]이 나온다!
'IT > spring' 카테고리의 다른 글
[투표사이트만들기] Eclipse에 Lombok 설치하기 - 2 (0) | 2021.01.12 |
---|---|
MVC 패턴 - View, Controller, DAO, DTO, Service 의미 (0) | 2021.01.12 |
[투표사이트만들기] MySQL Workbench - 4 (0) | 2021.01.11 |
[투표사이트만들기] Eclipse에서 Thymeleaf 설치하기 - 3 (0) | 2021.01.11 |
[투표사이트만들기] Eclipse에서 Spring boot 설치하기 - 1 (0) | 2021.01.11 |