myBatic ${} #{} 차이 ${}를 사용할 경우 1. SQL Injection 보안 위험이 발생할 수 있다. 2. ${}은 사용자의 입력을 받는 경우(예, 테이블 명, 컬럼 명)에 사용한다. 3. 사용자의 입력값이 따옴표 없이 그대로 사용된다. #{}를 사용할 경우 1. PreparedStatement 생성 2. PreparedStatement 매개 변수 값 안전하게 설정 3. PreparedStatement 가 제공하는 set 계열의 메소드를 사용하여 물음표(?)를 대체할 값을 지정. 4. 들어오는 데이터 물자열로 인식하기 때문에 자동 따옴표 붙음
nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; The content of element must consist of well-formed character data or markup. 자바 mybatis 프로그램을 하는데 위의 에러가 났다. 알고보니
먼저 마이바티스 프로그래밍을 하다 발생한 에러였다.org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)not found.. 라고 발생한것을 보면 뭘 찾지 못했다는 것인데... 뭘까.. 하고 생각을 해봤더니 클래스 이름을 바꿨는데 mybatis의 mapper namespace 를 바꾸지 않아서 발생한 에러였다. 전에도 이랬는데.. 아 이클립스에서 컴파일시 나오지 않으니 찾기가 어렵다.. 일단 mapper namespace를 바꿔서 해결 그런데.. 또 에러 발생.. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.execut..
한 2년만에 다시 스프링+mybatis 프로그래밍을 하려니 기억이 날듯말듯 하다^^ 삽질하면서.. 얻은 정보를 공유해봅시다^^ 기존 소스에 메소드와 mybatis xml 쿼리를 추가해서 실행해봤더니 invalid bound statement (not found) 이런 에러가 나왔다.. 이상하네.. 잘 넣은거 같은데... 이것저것 살펴보니 문제는 mybatis 파일의 상단에 이런식으로 되어 있는데 자바 파일에서 @Autowiredprivate CodeMapper codeMapper; //코드값 매퍼 이런식으로 되어 있어야 하는데 다른것으로 되어 있었다. 이름이 동일하고 패키지 경로가 다르면 이클립스에서 컴파일시 에러가 안나서 개발자가 모를 수 있다. 실행시점에 에러가 날 수 있다. 흔희 클래스명을 수정할 ..
- Total
- Today
- Yesterday
- 파이썬
- 자바
- 문자열
- 인포믹스
- 프로씨
- php
- proc
- MySQL
- xe addon
- XE3
- JDBC
- C
- XE
- esql
- Python
- 자바 셀레니움
- ocpjp
- C언어
- 파싱
- 포인터
- 자바 smtp
- EC
- 오라클
- webix
- ocjap
- 이클립스
- KG
- ocajp
- 스크래핑
- xe애드온
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |