본문 바로가기

전체 글69

8. 사용자의 입력 데이터 서버에 저장하기 이번 글에서는 이전 글에서 입력받은 사용자의 데이터를 서버에 저장하는 기능을 추가로 구현한다. 가장 먼저, 데이터 전송에 사용할 DTO 객체를 만들어 두자. 앞으로 프로젝트가 발전해 나가면서 우리는 일반 파라미터들 대신 DTO 객체를 받아 올 것이다. @Data @NoArgsConstructor public class PostingDTO { int idx; String title; int user_idx; String content; public PostingDTO (String title, int user_idx, String content) { this.title = title; this.user_idx = user_idx; this.content = content; } public Posting g.. 2023. 8. 31.
7. MVC 구현 뷰 생성 가장 먼저, 기본 기능인 게시글 작성, 조회에 사용할 view를 먼저 작성해 보자. 제목 : 내용 : 태그에서 사용자에게 데이터를 입력 받는다. 제목 : 내용 : 각각의 게시글 뷰에서는 서버에서 전달해 준 `response`의 필드 값들을 사용해 뷰를 구성한다. 컨트롤러 생성 다음으로는, jsp의 데이터 전송 요청을 처리해 주고, 적절한 뷰를 반환해 주는 컨트롤러를 생성하자. @RequestMapping("/post") @Controller public class PostingController { @GetMapping public String createView(){ return "view/posting/writePosting"; } @PostMapping public ModelAndView .. 2023. 8. 20.
6. 유저 CRUD 구현 및 테스트 데이터 삭제 유저 관련 기능은 앞서 만들어 뒀던 DAOContext의 기능을 그대로 가져다 쓸 것이기 때문에 코드만 올려 둔다. @Repository public class UserDAO { //daoContext 선언 및 주입 Function userMapper = rs ->{ User user = null; try { user = new User(); user.setId(rs.getString("id")); user.setPassword(rs.getString("password")); user.setIdx(rs.getInt("idx")); } catch (SQLException e) { e.printStackTrace(); } return user; }; public void save(User user) thro.. 2023. 8. 13.
5. 블로그 글 수정, 삭제 기능 수정 기능 이번엔 글 수정 기능을 구현해 보자. 글을 수정할 때는 원래의 포스팅의 idx값을 그대로 써야 한다는 점을 잊지 말자. 물론, 글을 수정할 떄는 사용자 정보 또한 바뀌면 안되기에 해당 부분을 확인해 주면 더 좋다. 일단 지금은 최소한의 글을 수정하기 위한 기능들만 작성해 보자. 먼저, PostingDAO에서 직접 Connection을 가지고 와 구현을 해 본다. public void update(Posting posting){ try (Connection conn = DriverManager.getConnection(url, userName, password)) { PreparedStatement ps = conn.prepareStatement( "update posting set title .. 2023. 8. 13.
4. 스프링을 사용한 의존성 주입 지금의 코드는 각각의 의존성을 모두 클래스가 직접 관리하고 있다. 그러나, 결국 스프링이 제공하는 AOP등을 사용하기 위해서는 우리의 클래스를 스프링 빈으로 등록해 두어야 할 것이고, 빈으로 등록하는 김에 스프링이 직접 의존성을 관리해 주는 것이 좋을 것 같다는 생각이 들었다. 스프링에게 의존성을 주입 받도록 코드를 수정해 주자. 수동으로 의존성 설정 applicationContext.xml 스프링에 수동으로 빈을 등록하고, 의존성 관계를 주입하기 위해서 xml 파일에 의존성을 명시해 두도록 하자. applicationContext.xml의 위치는 main > resource 바로 아래에 두었다. 다음은 applicationContext.xml의 전문이다. 다음과 같이 각 클래스들을 빈으로 등록해 두고,.. 2023. 8. 12.
3. 블로그 글 작성 기능 - 조회 기능 및 중복 Context 추출 조회 기능 이번에는 작성된 글을 인덱스를 활용해 조회해 보자. public Posting findByIdx(int idx){ Posting posting = null; try (Connection conn = DriverManager.getConnection(url, userName, password)) { PreparedStatement ps = conn.prepareStatement( "select * from posting where idx = ?"); ps.setString(1, String.valueOf(idx)); ResultSet rs = ps.executeQuery(); if (rs.next()) { posting = new Posting(); posting.setIdx(rs.getInt(.. 2023. 8. 11.