Spring/spring 공부

[Spring공부] DAO와 MyBatis Mapper xml의 쿼리문과의 매핑 원리

개발자하소서 2022. 4. 1. 16:12
728x90
반응형
SMALL

https://developer-joe.tistory.com/235

 

Java DAO와 MyBatis Mapper xml의 쿼리문과의 매핑 원리

아래와 같은 Mapper xml의 쿼리 문이 있다고 할 경우, insert into tbl_member (userid, userpw, username, email) values (#{userid}, #{userpw}, #{username}, #{email}) VO 객체는 다음과 같고, pub..

developer-joe.tistory.com

 

즉,  dao에서 회원가입 메서드를 구현할 경우 

 

 

<!-- 회원가입  mapper-->
   	<insert id="signup">
   		insert into shop_member(userId, userPass, userName, userPhon)
        	VALUES (#{userId}, #{userPass} , #{userName}, #{userPhon});
   	</insert>

 

//회원가입 dao
	@Override
	public void signup(MemberVO vo) throws Exception {
		sql.insert(namespace + ".signup", vo);
	}

 -->sqlSession클래스의 insert문의 원리는 다음과 같다.

 

   int insert(String statement, Object parameter)

--> 이때 첫번째 매개인자인 statement는 Mapper.xml의 쿼리문에 해당한다

위의 회원가입 메서드를 예로 들어보자면 statement부분에 namespace + ".signup" 이 들어가있는데,

이는  mapper xml에서 회원가입 쿼리에서 설정한 id값을 쓴 것이다.

즉, id가  signup이라는 쿼리문을 실행한다는 의미

 

--> 두번째 매개인자인 parameter는 첫번째 매개인자인 statement에서 쿼리문을 실행할 경우 이 쿼리문에서 사용할  변수들에게 #{ } 넘겨줄 값을 담고 있는 것이다.

즉, MemberVO의 객체인 vo를 넣는 것이다. 

 

 

728x90
반응형
LIST