[JDBC] 과제_0825 (5)

잠이보약·2023년 8월 27일

과제

목록 보기
5/5
post-thumbnail

abstract에서 override한 DELETE, INSERT, UPDATE를 수행하는 메서드를 구현한다.

	@Override
	public int deleteOneMemberByMemberId (String memberId) {
		
		Connection conn = cafeConnect.makeConnection();
		
		//쿼리 생성
		StringBuffer query = new StringBuffer();
		query.append(" DELETE  ");
		query.append("   FROM MEMBERS ");
		query.append("  WHERE MEMBER_ID = ? ");
	
		//쿼리 실행 준비
		PreparedStatement pstmt = null;
		try {
			pstmt = conn.prepareStatement(query.toString());
		} catch (SQLException e) {
			System.out.println("쿼리에 문제가 있습니다.");
			System.out.println(e.getMessage());
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		//바인딩
		try {
			pstmt.setString(1, memberId);
		} catch (SQLException e) {
			System.out.println("파라미터 바인딩 과정에서 예외가 발생했습니다.");
			System.out.println("사유: " + e.getMessage());
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		int deleteCount = 0;
		try {
			deleteCount = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		} finally {
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
		}
			
		return deleteCount;
	}
	
	@Override
	public int insertNewMember (MembersVO memberVO) {
		
		Connection conn = cafeConnect.makeConnection();
		
		//쿼리 생성
		StringBuffer query = new StringBuffer();
		query.append(" INSERT INTO MEMBERS ");
		query.append("       (MEMBER_ID ");
		query.append("      , MEMBER_NAME ");
		query.append("      , MEMBER_GRADE ");
		query.append("      , PROFILE_IMG) ");
		query.append(" VALUES ");
		query.append("       (SEQ_MEMBERS_PK ");
		query.append("      , ? ");
		query.append("      , ? ");
		query.append("      , ?) ");
	
		//쿼리 실행 준비
		PreparedStatement pstmt = null;
		try {
			pstmt = conn.prepareStatement(query.toString());
		} catch (SQLException e) {
			System.out.println("쿼리에 문제가 있습니다.");
			System.out.println(e.getMessage());
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		//바인딩
		try {
			pstmt.setString(1, memberVO.getMemberId());
			pstmt.setString(2, memberVO.getMemberName());
			pstmt.setString(3, memberVO.getMemberGrade());
			pstmt.setString(4, memberVO.getProfileImg());
		} catch (SQLException e) {
			System.out.println("파라미터 바인딩 과정에서 예외가 발생했습니다.");
			System.out.println("사유: " + e.getMessage());
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		int insertCount = 0;
		try {
			insertCount = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		} finally {
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
		}
			
		return insertCount;
	}

	@Override
	public int updateMemberGradeByMemberId(String newGrade, String memberId) {
		
		Connection conn = cafeConnect.makeConnection();
		
		//쿼리 생성
		StringBuffer query = new StringBuffer();
		query.append(" UPDATE MEMBERS  ");
		query.append("    SET MEMBER_GRADE = ? ");
		query.append("  WHERE MEMBER_ID = ? ");
	
		//쿼리 실행 준비
		PreparedStatement pstmt = null;
		try {
			pstmt = conn.prepareStatement(query.toString());
		} catch (SQLException e) {
			System.out.println("쿼리에 문제가 있습니다.");
			System.out.println(e.getMessage());
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		//바인딩
		try {
			pstmt.setString(1, newGrade);
			pstmt.setString(2, memberId);
		} catch (SQLException e) {
			System.out.println("파라미터 바인딩 과정에서 예외가 발생했습니다.");
			System.out.println("사유: " + e.getMessage());
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
			return 0;
		}
		
		int updateCount = 0;
		try {
			updateCount = pstmt.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
			return 0;
		} finally {
			cafeConnect.closePreparedStatement(pstmt);
			cafeConnect.closeConnection(conn);
		}
			
		return updateCount;
	
	}
profile
백엔드 개발자 지망생

0개의 댓글