mybatis 9

MyBatis LocalDate

문제 증상 : LocalDate 형식을 사용 할때 따옴표가 붙지 않는다. Java > LocalDate startDate; xml > Select * From Table Where startDate = #{startDate} 원하는 결과 > Select * From Table Where startDate = '2020-06-01' 실행된 결과 > Select * From Table Where startDate = 2020-06-01 ------------- 예상 원인 1. Mybatis 구 버전에서 java8의 java.time 형식을 지원하지 않는 문제가 있음, 이 것이 그 문제인가? (연관링크) 해결방안1) handler 추가하기 1-1) mybatis-typehandlers-jsr310 라이브러리 ..

Database 2021.03.24

[MyBatis] foreach

http://huskdoll.tistory.com/507 방법은 Map을 선언시 로 선언하고 Object에 list를 넣어주고 query 부분에서 리스트를 foreach 돌려 사용하면 됩니다. DAO 부분에서 책 정보를 가져오도록 작성1234567891011121314151617public List getBooksInfo() { Map param = new HashMap(); param.put("id", "1"); //#{id}에 셋팅 param.put("name", "victor"); //#{name}에 셋팅 List codeList = new ArrayList(); codeList.add("01"); //in 조건에 넣을 정보 codeList.add("05"); param.put("code_list"..

Database 2018.05.25

nested exception is org.apache.ibatis.binding.BindingException: Parameter 'item' not found. Available parameters are [collection, list]

Mybatis Error nested exception is org.apache.ibatis.binding.BindingException: Parameter 'item' not found. Available parameters are [collection, list] item 은 foreach item에 선언한 변수 명 https://okky.kr/article/370218 org.mybatis mybatis 3.4.6 org.mybatis mybatis-spring 1.3.2 에서 에러남..원래 3.4.2 & 1.3.2 에서는 괜찮았음. http://blog.mybatis.org/2018/03/mybatis-346-released.html 원인 insert문에서 foreach + on duplicate..

오류관리 2018.03.20

[MyBatis] #, $ 차이

2021.03.17 업데이트) # => Prepared Statement (동적) 쿼리문을 실행하기에 앞서 구문 분석, 의미 분석, 파싱 작업을 진행하여 SQL Injection 코드를 만나게 되면 오류 발생함 (SQL Injection 대비 가능) $ => Statement (정적) 쿼리 실행시마다 옵티마이저의 수행 계획 달라짐 여기서 유념해야 할 부분은 # 을 사용했을 때에는 ? 으로 치환이 되는 반면에 $ 를 사용한 케이스에서는 $ 영역에 100이라는 상수로 치환되어 쿼리를 수행하게 된다. 중요한 포인트는 101, 102, 103 과 같이 숫자가 바뀔 때마다 파싱 작업을 항상 진행해야 한다라는 것이다. 성능상에 단점이 존재한다라는 것을 알 수 있다. 변수로 인식하지 않게하기 위해서 #{param} ..

Database 2017.06.15

[Mybatis] resultType & resultMap

http://noritersand.tistory.com/229 http://noritersand.tistory.com/228 resultType으로 자바 클래스를 명시했을 때, 만약 두 모델, 즉 자바 클래스와 데이터 모델간 프로퍼티명이 다르면 마이바티스의 자동 매핑이 무력화될 것이다. 따라서 이 경우엔 다음처럼 둘의 이름이 일치하도록 alias를 사용하거나: 혹은 resultType을 resultMap으로 대체하는 방법을 택해야 한다: http://www.mybatis.org/mybatis-3/ko/sqlmap-xml.html MyBatis Mapper Document resultType : 이 구문에 의해 리턴되는 기대 타입의 패키지 경로를 포함한 전체 클래스명이나 별칭. collection인 경우 ..

Database 2016.11.30
반응형