본문 바로가기
728x90
반응형

프레임워크/MyBatis5

MyBatis foreach 1. 다이나믹(동적) 쿼리인 foreach문 사용방법 #{item} item : 인덱스의 해당되는 value (컬렉션이 Map인 경우는 key에 해당되는 value) index : 현재 for문을 돌고있는 index(0, 1, 2 ,3) collection : List, Set, Map, Array 를 매개변수로 사용가능 open : foreach문이 시작될 때 앞에 삽입될 문자열 separator : foreach문에서 반복되는 값 사이마다 넣어줄 문자열 close : foreach문이 끝났을 때 마지막 item 뒤에 넣을 문자열 2. 예시 ArrayList list = new ArrayList('a,b,c,d'); select * from temp where 1=1 and #{item} 결과 : se.. 2022. 2. 21.
useGeneratedKeys,keyProperty 사용법 useGeneratedKeys ="true" 통해 글 번호를 자동적으로 증가되게 할 수 있음 KeyProperty="idx" 해당 키값을 선택할수 있음 -> idx(글번호)에 해당해서 글 번호를 자동으로 증가시키게끔 하라 위에서는 태그를 사용해 게시글이 작성이 된 후 가장 큰 글 번호 값을 받아서 Hashmap 타입으로 파라미터를 설정해 주었던 초기의 idx(글 번호-0) 값을 작성된 글번호 값으로 세팅해줄 수 있음 2020. 11. 26.
Mybatis-Spring 트랜잭션 처리 1.스프링에서 트랜잭션을 쓰기위한 XML 설정 2.트랜잭션 처리의 예시 회원이 게시판에 글을쓰면 회원에게 포인트 1점을 부여하겠다) 업무가 두가지로 나뉘어짐 (글을쓰는 업무 , 회원에게 포인트를 부여하는 업무 - 두개의 업무를 하나의 논리적인 단위로묶음 (트랜잭션 처리) ) -> 시작 1. 회원이 글을 쓰고 글작성 완료 버튼을 누른다.(insert) 2. 회원에게 포인트 부여(update member set point = point + 1 where id='hong') -> 끝 ( 글을쓰는 업무와 회원에게 포인트를 부여하는 업무 둘다 성공해야지 정상적으로 DB에 Commit됨 ) ( 글쓰기 작성은 성공했는데 회원포인트 부여하는 업무에서 에러발생 - 두개의 업무중 둘중에 하나라도 안된다면 DB에 실반영되지.. 2020. 6. 15.
select 결과를 DTO 클래스에 매핑하기 1.resultType에 select한 결과를 매핑할 DTO클래스 지정 2. 위에서 select * from test 결과 -> id(1),value(20) [0] , id(2),value(30) [1] -> Test 클래스에 id = 1 , value = 20 | id = 2 , value = 30 이 설정된다 -> select한 결과가 두건이므로 Test 객체가 두개생성되며 DB의 컬럼이름과 일치하는 해당필드에 각각 값이 설정된다 -> Test클래스의 멤버필드에 값이 설정되는데 Setter메소드가 있으면 그것을 통해 설정되고 없으면 필드에 직접 설정된다 결론 : select한 결과가 매핑될 DTO 클래스(Test)의 조건 -> DB 테이블의 컬럼이름과 해당DTO 클래스의 멤버필드이름이 똑같아야 값이 .. 2020. 6. 14.
728x90
반응형