- [JSP] 50. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (9)2024년 07월 11일
- Song hyun
- 작성자
- 2024.07.11.:27
728x90반응형[JSP] 50. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (9)
1. getTodosById (ID로 Todolist 조회하기)
(1) 내가 쓴 코드@Override public List<TodoDTO> getTodosByUserId(int userId) { String sql=" select * from todos where user_id= ? "; List<TodoDTO> todos=new ArrayList<TodoDTO>(); try (Connection conn=dataSource.getConnection()){ conn.setAutoCommit(false); try (PreparedStatement pstmt=conn.prepareStatement(sql)){ pstmt.setInt(1, userId); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { TodoDTO dto=new TodoDTO(); dto.setId(rs.getInt("id")); dto.setUserId(userId); dto.setTitle(rs.getString("title")); dto.setDescription(rs.getString("description")); dto.setDueDate(rs.getString("due_date")); dto.setCompleted(rs.getInt("completed")); todos.add(dto); } } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } System.out.println("UserList : "+todos.toString()); return todos; }
(2) 선생님이 작성하신 코드
public List<TodoDTO> getTodosByUserId(int userId) { String sql = " String * from todos where user_id = ? "; List<TodoDTO> todos= new ArrayList<>(); try (Connection conn=dataSource.getConnection()){ PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, userId); try (ResultSet rs=pstmt.executeQuery()){ while(rs.next()) { TodoDTO dto = new TodoDTO(); dto.setId(rs.getInt("id")); dto.setUserId(rs.getInt("user_id")); dto.setTitle(rs.getString("title")); dto.setDescription(rs.getString("description")); dto.setDueDate(rs.getString("due_date")); dto.setCompleted(rs.getString("completed")); todos.add(dto); } } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return null; }
2. UpdateTodo
(1) 내가 쓴 코드@Override public void updateTodo(TodoDTO dto, int principalId) { int rowCount=0; String sql=" update todos set title = ? , description = ? where id = ? ;"; try (Connection conn=dataSource.getConnection()){ conn.setAutoCommit(false); try (PreparedStatement pstmt=conn.prepareStatement(sql)){ pstmt.setString(1, dto.getTitle()); pstmt.setString(2, dto.getDescription()); pstmt.setInt(3, principalId); rowCount=pstmt.executeUpdate(); conn.commit(); } catch (Exception e) { conn.rollback(); e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } System.out.println("수정 "+rowCount); }
(2) 선생님이 쓰신 코드
public void updateTodo(TodoDTO dto,int principalId){ // SELECT <-- 해당 사용자가 있는지 없는지 확인 과정 필요 String sql="Update todos set title = ? , description = ? , due_date = ? , completed = ? where id = ? and user_id = ? "; try(Connection conn=dataSource.getConnection()){ conn.setAutoCommit(false); try(PreparedStatement pstmt=conn.prepareStatement(sql)){ pstmt.setString(1,dto.getTitle()); pstmt.setString(2,dto.getDescription()); pstmt.setString(3,dto.getDueDate()); pstmt.setString(4,dto.getCompleted()); pstmt.setInt(5,dto.getId()); pstmt.setInt(6,principalId); pstmt.executeUpdate(); conn.commit(); } catch (Exception e) { conn.rollback(); e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } }
3. DeleteTodo
(1) 내가 쓴 코드@Override public void deleteTodo(int id, int principalId) { int rowCount=0; String sql = " delete from todos where id= ? "; try (Connection conn=dataSource.getConnection()){ conn.setAutoCommit(false); try (PreparedStatement pstmt=conn.prepareStatement(sql)){ pstmt.setInt(1, id); rowCount=pstmt.executeUpdate(); conn.commit(); } catch (Exception e) { conn.rollback(); e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } System.out.println("수정 "+rowCount); } }
(2) 선생님이 쓰신 코드
public void deleteTodo(int id,int principalId){ String sql = "DELETE FROM todos where id = ? and user_id = ? "; try(Connection conn=dataSource.getConnection()){ conn.setAutoCommit(false); try(PreparedStatement pstmt=conn.prepareStatement(sql)){ pstmt.setInt(1,id) pstmt.setInt(2,principalId); pstmt.executeUpdate(); conn.commit(); } catch(Exception e){ conn.rollback(); e.printStackTrace(); } catch(Exception e){ e.printStackTrace(); } }
728x90반응형'JSP > Todo 리스트 만들기' 카테고리의 다른 글
[JSP] 51. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (10) (0) 2024.07.11 [JSP] 49. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (8) (0) 2024.07.10 [JSP] 48. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (7) (0) 2024.07.10 [JSP] 47. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (6) (0) 2024.07.10 [JSP] 46. <JSP와 MVC 패턴을 사용한 to-do 프로젝트> (5) (0) 2024.07.09 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)