mybatis(4)
-
[MyBatis] MS-Sql Merge Into문 사용 / Mssql Dual 테이블
MERGE INTO문을 사용하면 데이트 존재여부에 따라 UPDATE, DELETE, INSERT 등을 한 번에 할 수 있다. 기본적으로 Mssql의 Merge Into문이다. MERGE INTO (변경할 테이블) USING (비교할 테이블|서브 쿼리) ON (조건문) WHEN MATCHED THEN (조건을 만족할 경우 쿼리문) UPDATE SET 컬럼명1 = '값1', 컬럼명2 = '값2' DELETE WHEN NOT MATCHED THEN (조건을 만족하지 않을 경우 쿼리문) INSERT ( 컬럼1, 컬럼2 ) VALUES ( '값1', '값2' ); > 이 기본 쿼리문을 기준으로 myBatis에 코드를 짜보자! > 처음으로 짠 코드! myBatis에선 태그를 써준다. OAUTH_TOKEN 테이블에서..
2023.01.31 -
[MyBatis] 다중 insert, 여러 데이터 한 번에 insert 시키기
Mybatis 호출할 때 insert into info(email, name) values (#{item.email}, #{item.name}) collection : 파라미터로 넘어온 map 안에 list item : collection을 사용할 변수명 seperator : 반복 문자열을 구분할 문자 foreach 문에 넣어주면 알아서 돈다! 실제 날리는 쿼리는 insert into info(email, name) values("email1", "name1"), ("email2", "name2"), ("email3", "name3"); 이런식으로 values 에 리스트가 한 번에 들어가서 insert 한 방에 데이터 여러개를 처리할 수 있다!
2023.01.26 -
[MyBatis] #{}와 ${} 차이?
SELECT COUNT(*) FROM ZOOM_ACCOUNT_INFO WHERE EMAIL = ${email}; parameterType 을 map으로만 받아오다가 String 으로 받아오려고 하는데 처음엔 그냥 ${변수명} 을 넣어주었다. 뭔가 #{}에는 map의 key값을 적는다고 생각해서... 그러고 실행하니까 ### SQL: SELECT COUNT(*) FROM ZOOM_ACCOUNT_INFO WHERE EMAIL = test@test.com; ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 여러 부분으로 구성된 식별자 "test@test.com"은(는) 바인딩할 수 없습니다. ; uncategorized SQLException; SQL ..
2023.01.26 -
[Spring] - (4)MyBatis / 설정 및 연동
> MemDAOImpl 에 SQL 구문이 다 들어있다! 그래서 이걸 바꾸면 자바파일 계속 바꿔야함 그래서 SQL 구문을 xml 에 만들어서 xml 만 호출할 수 있도록 만들 거! → 자바 파일을 전혀 손 안대도 된다. 우리는 지금 spring 이 3버전! 그래서 context.xml 에 뭐가 많이 적혀있다! 4버전으로 하면 이제 이런거 다 지워지고 DB 연동, MyBatis 연동만 남음 새 프로젝트 만들기 Next Finish MVC 프로젝트 만들기 JDK 버전 설정 1.8 지금은 1.6 프로젝트에서 오른쪽 버튼 누르고 Properties > 첫번째 설정 1.8 버전으로 바꾸기 > 두번째 설정 1.8 ..
2022.10.09