728x90

 

Fork란?

Fork는 포크로 집어 온다는 걸 연상하면 된다

팀프로젝트를 같이 깃허브에서 했다고 한다면 팀장의 깃허브에서 같이 작업했을텐데

해당 작업물을 내 리파지토리(저장소)로 끌어올 수 있는 편한 기능이다

 

팀프로젝트 깃허브 리파지토리에 들어가면 아래처럼 상단에 Fork가 보일 것이다

 

해당 아이콘을 누르면 아래의 페이지로 이동하는데

내 저장소로 가져갈 리파지토리 이름을 정하면 된다. create fork 클릭

 

Fork 업데이트하기

한번 포크해오고 나서 또 업데이트가 있어서 나중에 다시 Fork를 최신화 하고 싶을 때는 어떻게 해야할까?

포크한 리파지토리에서 가서 Sync fork를 누르고 Update branch 클릭 하나면 끝!!

728x90
반응형
728x90

 

 

Controller

/********************************************** QnA : 수정  *******************************************************/
	
	
	@RequestMapping("boardQnaUpdateView.bo")
	public String boardUpdateForm() {
		return "boardQnaUpdateForm";
	}
	
	@RequestMapping("boardQnaUpdateForm.bo") 
	public String updateBoardQna(@ModelAttribute BoardQnA b, @RequestParam("page") int page,
									HttpSession session) {  
		
		String id = ((Member)session.getAttribute("loginUser")).getEmail();
		b.setEmailId(id);
		
		int result = bService.updateBoardQna(b); 

		if(result > 0) {
			//model.addAttribute("board", b)...;
			// 보드 보낼 필요없음. 화면 상세보기 페이지로 가기 때문에 상세보기 페이지로 가는 bdetail.bo 이용하면 됨
			//return "redirect:bdetail.bo?bId=" + b.getBoardId() + "&page=" + page;
			
			// 리다이렉트인데 데이터보존됨
//			model.addAttribute("bId",b.getBoardId());
//			model.addAttribute("page",page);
			return "redirect:boardQna.bo";
			
		} else {
			throw new BoardException("문의사항 수정에 실패하였습니다.");
		}
	}
	
	
	
	
	
/********************************************** QnA : 삭제  *******************************************************/
	
	
	@RequestMapping("boardQnaDeleteForm.bo")
	public String deleteBoard(@ModelAttribute BoardQnA b, HttpSession session) {  
			
		
		String id = ((Member)session.getAttribute("loginUser")).getEmail();
		b.setEmailId(id);
		
		int result = bService.deleteBoardQna(b);
		
		if(result > 0) {
			return "redirect:boardQna.bo";
		}else {
			throw new BoardException("QnA 삭제에 실패하였습니다.");
		}
	}

 

 

Service & DAO

// BoardService
	int updateBoardQna(BoardQnA b);
	int deleteBoardQna(BoardQnA b);
    
// BoardServiceImpl
   	// QnA 수정
	@Override
	public int updateBoardQna(BoardQnA b) {
		return bDAO.updateBoardQna(sqlSession, b);
	}

	// QnA 삭제
	@Override
	public int deleteBoardQna(BoardQnA b) {
		return bDAO.deleteBoardQna(sqlSession, b);
	}


// BoardDAO
	// QnA 수정
	public int updateBoardQna(SqlSessionTemplate sqlSession, BoardQnA b) {
		return sqlSession.update("boardMapper.updateBoardQna",b);
	}
	
	// QnA 삭제
	public int deleteBoardQna(SqlSessionTemplate sqlSession, BoardQnA b) {	// delete도 가능.  status='N'으로 변경 
		return sqlSession.update("boardMapper.deleteBoardQna",b);
	}

 

 

Board-mapper.xml

<!-- QnA 수정 -->
	<update id="updateBoardQna">
		update qna
		set qna_title = #{qnaTitle}, qna_content = #{qnaContent}
		
		where email_id = #{emailId}
	</update>
 	
<!-- QnA 삭제 -->
	<update id="deleteBoardQna">
		update qna
		set qna_status = 'N'
		where email_id = #{emailId}
	</update>

 

뷰단 삭제 메세지 추가

	<script>
		function boardQnaDelete(){
			if(confirm("정말 삭제하시겠습니까?")){
				location.href="boardQnaDeleteForm.bo"
			}
		}
	</script>

 

728x90
반응형
728x90

회원가입, 조회, 내 정보 보기, 수정, 탈퇴

 

db랑 다르게 쿼리문 맞쳤다는 세미콜론 안들어감

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="memberMapper">
	<!-- 회원가입 : insert태그 -->
	<insert id="insertMember" parameterType="Member"> <!-- parameterType : 쿼리에 전달될 데이터의 타입 지정 -->
		insert into member
		values (#{userId}, #{userPwd}, #{userName}, #{nickName}, #{email}, #{birthDay}, #{gender}, #{phone}, #{address}, sysdate, sysdate, default)
	</insert>

	<!-- 내정보보기 수정 -->
	<update id="updateMember" parameterType="Member">
			update member
			set user_name = #{userName}, nickName = #{nickname}, email = #{email}, birthDay = #{birthDay},
				gender = #{gender}, phone = #{phone}, address = #{address}
			where user_id = #{userId}
	</update>
	
	
	<!-- 비번 수정 -->
	<update id="updatePwd" parameterType="java.util.HashMap"> <!-- parameterType="hashMap"도 가능. 마바 내장별칭 때문 -->
		update member
		set user_pwd = #{newPwd} 
		where user_id = #{id} and user_pwd = #{oldPwd}
	</update>
	
	
	<!-- 회원탈퇴 -->
	<update id="deleteMember" parameterType="string"> <!--string : 마이바티스 내장 별칭 string==String  -->
		update member
		set status = 'N' 
		where user_id = #{userId}
	</update>


</mapper>

 

728x90
반응형
728x90

 

DML (Data Manipulation Language) :  데이터 조작어

INSERT, UPDATE, DELETE

 

1.INSERT 데이터 삽입

INSERT INTO 테이블명(데이터를 삽입할 컬럼명) VALUES(테이블의 컬럼 수에 맞게 값 삽입);
INSERT INTO 테이블명 VALUES(테이블의 컬럼 수에 맞게 값 삽입);
    - 테이블의 모든 컬럼에 값을 넣을 때는 컬럼명 생략가능

    - 컬럼 순서대로 데이터값이 들어가기에 순서명이 정확해야함

INSERT INTO MEM VALUES(1,'김철수',001,01012345678);
INSERT INTO MEM(EMPLPOYEE_ID,EMPLOYEE_NAME,EMPLOYEE_NUMBER,PHONE);

 

원하는 컬럼에 데이터값 넣기

INSERT INTO MEM(EMPLOYEE_ID) VALUES(2);
INSERT INTO MEM(EMPLOYEE_NAME) VALUES('박철수');
INSERT INTO MEM(EMPLOYEE_NUMBER,PHONE) VALUES('002','01012345679');

 

2.UPDATE 데이터 수정

 UPDATE 테이블명 SET 컬럼명 [WHERE]

UPDATE MEM SET EMPLOYEE 
UPDATE MEM SET EMPLOYEE = WHERE EMPLOYEE_ID = '002';

 

3.DELETE 데이터 삭제

DELETE FROM 테이블명 [WHERE] 컬럼명;

DELETE 제약조건 무시
기본적으로는 부모 참조 자식 테이블 있으면 삭제 불가

DELETE로 삭제한거는 롤백으로 복원 가능
TRUNCATE는 롤백으로 복원 불가능

DELETE FROM MEM;
DELETE FROM MEM WHERE EMPLOYEE_ID='001';

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts