프로젝트 생성
spring initializer로 Spring Boot 프로젝트 생성
MariaDB 스키마 생성
application.property 파일 설정
server.port=포트번호
spring.datasource.driver-class-name=org.사용한DB.jdbc.Driver
spring.datasource.username=연결이름
spring.datasource.password=비밀번호
spring.datasource.url=jdbc:사용한DB://localhost:연결포트/스키마이름
게시물 작성
MariaDB 에 Board 테이블 생성
게시물 작성 폼 생성
@Controller
public class BoardController {
// localhost:8090/board/write
@GetMapping("/board/write")
public String boardWriteForm() {
return "boardwrite";
}
}
게시물 작성 처리
<form action="/board/writepro" method="post">
<input name="title" type="text">
<textarea name="content"></textarea>
<button type="submit">작성</button>
</form>
@PostMapping("/board/writepro")
public String boardWritePro(Board board) {
boardService.write(board);
return "";
}
@Entity
@Data
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String title;
private String content;
}
@Repository
public interface BoardRepository extends JpaRepository<Board, Integer> {
}
@Service
public class BoardService {
@Autowired
private BoardRepository boardRepository;
public void write(Board board) {
boardRepository.save(board);
}
}
게시물 리스트 페이지 생성
게시물 리스트 페이지에 저장된 게시글 출력
<table>
<thead>
<tr>
<th>글번호</th>
<th>제목</th>
</tr>
</thead>
<tbody>
<tr th:each="board: ${list}">
<td th:text="${board.id}"></td>
<td th:text="${board.title}"></td>
</tr>
</tbody>
</table>
@GetMapping("/board/list")
public String boardList(Model model) {
model.addAttribute("list", boardService.boardList());
return "boardlist";
}
public List<Board> boardList() {
return boardRepository.findAll();
}
게시글 상세 페이지 생성
게시글 상세 페이지 하이퍼 연결
https://github.com/SY97P/SpringCrud/commit/ea42e57cd0e9fcb41d0bf5d6b287dd18f0365573
게시물 삭제 버튼 생성
게시물 삭제 처리
https://github.com/SY97P/SpringCrud/commit/a46411020d2452f6ff46a8ba39bb982135dee129
게시물 수정 페이지 생성
게시물 수정 처리
https://github.com/SY97P/SpringCrud/commit/5acb8b814819663469dd57596799295076249e1c
쿼리 스트링 방식 :
<a th:href="@{/board/view(id=${board.id}}"></a>
@GetMapping("/board/view")
public String boardView(Model model, Integer id) {
model.addAttribute("board", boardService.boardView(id));
return "boardview";
}
패스 변수 방식 :
<a th:href="@{/board/view/{id}(id=${board.id}}"></a>
@GetMapping("/board/modify/{id}")
public String boardModify(@PathVariable("id") Integer id,
Model model) {
model.addAttribute("board", boardService.boardModify(id));
return "boardmodify";
}
게시물 리스트 페이징
검색기능
https://github.com/SY97P/SpringCrud/commit/22ec9da26bedf87cbf6acfdd465442bf202a9d86
https://github.com/SY97P/SpringCrud/commit/db97c7edbd37ed7c9e180187ac6101d51e2dc4b3