7.데이터프레임워크/myBatis
- SQL 조건절 IN 안에 조건 여러개 넣기 2016.11.11
- myBatis mssql insert 후 바로 시퀀스값 select 하기 2016.08.24
마이바티스로
IN 조건절 안에 조건 여러개 넣는 방법
<application-properties.xml>
1 2 3 | <!-- 영업팀 ID --> <entry key="salesTeam">M0020,M0022,M0033</entry> | cs |
<Controller.java>
1 2 3 4 5 6 7 8 9 | /* 영업팀 ID 정보 */ @Value("#{config[salesTeam]}") private String salesTeam; ~~중간생략~~ /* 영업팀 토큰 정보 가져오기 */ String[] salesTeamArray = salesTeam.split(","); List<HashMap<String, String>> salesTeamTokenInfo = pushService.getSalesTeamTokenInfo(salesTeamArray); | cs |
<Service.java>
1 2 3 | public List<HashMap<String, String>> getSalesTeamTokenInfo(String[] salesTeamArray) { return pushMapper.getSalesTeamTokenInfo(salesTeamArray); } | cs |
<Mapper.xml>
1 2 3 4 5 6 7 8 9 10 11 12 13 | <select id="getSalesTeamTokenInfo" parameterType="list" resultType="HashMap"> SELECT A.TOKEN, B.DEVICE FROM 테이블에이 A, 테이블비 B WHERE 조인조건 AND A.MEM_IDX IN <foreach collection="array" item="memIdx" index="index" open="(" separator="," close=")"> #{memIdx} </foreach> </select> | cs |
'7.데이터프레임워크 > myBatis' 카테고리의 다른 글
myBatis mssql insert 후 바로 시퀀스값 select 하기 (0) | 2016.08.24 |
---|
MS SQL 테이블 값 인서트하면 자동증가 컬럼 값을 가져오는 방법이 애매해서 찾아보던 중
<selectKey keyProperty> 라는 것을 알게 되어 정리~
<Controller>
1 2 3 4 5 6 7 | @RequestMapping(value="/test", method=RequestMethod.GET) public void testPush(@RequestParam HashMap<String, Object> paramMap, HttpServletRequest request, HttpServletResponse response) throws Exception { pushService.insertPush(paramMap); int pushIdx = (int) paramMap.get("idx"); } | cs |
HashMap 을 paramMap 이라는 이름의 파라미터로 TABLE_PUSH 에 인서트 하도록 한다
테이블 TABLE_PUSH 의 구조는
IDX(int), SUBJECT(String), MESSAGE(String) 컬럼 3개
<Mapper>
1 2 3 4 5 6 7 8 9 | <insert id="insertPush" parameterType="map"> INSERT INTO TABLE_PUSH (SUBJECT, MESSAGE) VALUES (#{subject}, #{message} ); <selectKey keyProperty="idx" resultType="Integer" order="AFTER"> SELECT IDENT_CURRENT('TABLE_PUSH') </selectKey> </insert> | cs |
<selectKey keyProperty="컬럼명" resultType="컬럼타입" order="실행시기">
SELECT IDENT_CURRENT('테이블명')
그렇게 하면 <insert> 의 parameterType="map" 으로 썼던 파라미터 paramMap 의 idx 에
현재 자동증가값이 얼마인지 들어가 있게 된다
또는 useGeneratedKeys 를 사용할 수도 있다
1 2 | <insert id="insertData" parameterType="DataClass" useGeneratedKeys="true" keyProperty="id"> | cs |
'7.데이터프레임워크 > myBatis' 카테고리의 다른 글
SQL 조건절 IN 안에 조건 여러개 넣기 (0) | 2016.11.11 |
---|