Spring Project 생성하기Eclipse에서 Project를 만들 때 New Dynamic Web Project를 선택해야 합니다. New Dynamic Web Project를 만드는 과정은 JSP를 만드는 과정과 동일합니다.과정은 복잡하지만, 이클립스와 Java Version마다 만드는 방법이 달라지므로 해당 방법을 고안했습니다. 이 방법이 귀찮았다면, SpringBoot로 만드는 것을 추천드립니다. 해당 방법의 Version은 Java 11과 Tomcat 9.0을 사용합니다.이클립스는 2022 - 03 버전을 사용합니다. Spring Legercy가 제대로 안 만들어지는 이상한 호환성을 가진 이들의 조합이라고도 할 수 있습니다.만들기 전에 자신의 Version을 제게 맞추실 필요는 없습니다. ..
출처: 김영한 강의 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 초급자를 위해 준비한 [웹 개발, 백엔드] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자 www.inflearn.com JPA의 버전 맞추기 org.hibernate hibernate-entitymanager 5.6.15.Final com.h2database h2 2.2.220 23. 08. 19. 기준 JPA를 사용하기 위한 POM.XML의 설정입니다. JPA를 사용하기 위해서는 Hibernate와 사용할 DB의..
JPA를 사용도중 이상한 버그가 발생되었습니다. 코드를 연습하는 과정에서 JPA의 기능 중 하나인 DROP TABLE이 동작되지 않아서 기존의 TABLE에 내용이 그대로 남게 되었으며, 동시에 같은 PK를 INSERT 하는 과정에 의해 개체무결성 오류가 발생되는 문제였습니다. 이는 강의의 코드 중, 과거의 H2 버전을 참고하다 발생된 문제이며 H2의 1.4.199는 상위 hibernate를 가져올 경우 상속된 CLASS의 Entity는 DROP TABLE이 제대로 동작되지 않는 버그였습니다. 이를 간단히 해결하기 위해서는 JPA를 사용하기 위한 라이브러리를 최신버전으로 Update를 해야 할 필요가 있었습니다. 상위 버전 맞추기 SELECT H2VERSION() FROM DUAL; H2의 SQL를 입력하..
Spring, DAO와 MyBatis 연결 MyBatis 설정하기 Maven 불러오기 org.mybatis mybatis 3.4.5 org.mybatis mybatis-spring 1.3.2 MyBatis를 사용하기 위해서는 해당 Maven 설정이 필요하다. MyBatis를 사용하기 위한 root-context.xml 설정이다. configLocation은 Mapper에 사용하기 위한 설정값을 저장하는 곳 mapperLocations은 Mapper(SQL)이 담겨 있는 .xml의 위치가 담겨 있는 곳 두 곳을 잘 설정 해두었다면 MyBatis 설정은 끝났다. MyBatis 사용하기 여기서 namespace를 설정해서, Spring이 Java와 xml이 서로 연결되도록 설정을 해둔다. 저 이름은 절대 중복..
Spring, MyBatis의 resultMap MyBatis란? Spring이 지원하는 DAO, JTBC 기능 중 하나로 DB와 연결되는 부분 중 하나이다. SQL 문법 그대로 사용할 수 있다는 장점이 있어서 인기가 좋으며, 가독성 또한 월등하니 우리나라에서 많이 사용하는 형식이다. MyBatis의 오류 여기서 MyBatis는 해당 Bean 혹은 VO의 위치가 어딧는지를 모른다. 이 글을 읽는 독자 또한 저 TestVO가 무엇인지, 어느 패키지 장소를 구분하기란 어렵다. 이 부분을 해소시키기 위해서 resultMap이 있다. resultMap이 Mybatis에서 사용하는 Type의 위치를 어딧는지, 무엇인지 알려주는 기준점이 된다. 이 resultMap기능을 안 쓸 경우 사용하는 VO가 어딧는지를 명확..
Spring, Out of range value column Error 문단제목 갑작스러운 Error 코드가 발생되었다. Out of range value for column 'PLACE_TYPE' 의 ERROR이다. 원인은 다음과 같다. DB의 TYPE과 Java의 Type가 일치 혹은 값을 넘겨받을 수 없을 경우 발생된다. 필자가 이 같은 원인이 나온 이유는 DB는 VARCHAR(String)을 입력해놓고, VO는 int로 설정했었다.
[Spring Error] Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 제목 Error 코드 sql-error-codes.xml 이 발생되었습니다. 이 Error Code를 풀기 위해서 제 세 시간을 버렸습니다. Error Log를 정말 잘못 설정해서, 어디서 Error 뜬 건지 많은 헛고생을 하게 되었는데요. SQL 코드도 간단한 거이기 때문에 대체 왜 Error가 나오나 생각했습니다. 앞의 $과 #을 제가 착각해서 sql Error가 발 새하게 되었더라고요. $은 받은 값 그대로 오기 때문에 String, Int타입만 맞는다면 사용하시는 데에는 문제가 ..
@RequestParam 활용하기 RequestParam Spring Controller에서 @RequestParam은 매우 유용한 기능입니다. jsp를 배웠다면 request.getParameter의 기능이라고 생각하시면 됩니다. requestParam은 jsp에서 보낸 request값을 효율적으로 받기 위해 사용합니다. 기본적인 정의입니다. @Controller public class TestController { //테스트 입니다. @RequestMapping(value="/test/Test_edit.do", method= {RequestMethod.GET}) public String Test_edit(Model model, @RequestParam(value="mod") String mod) th..
파일 업로드 설정하기 목차 MultipartHttpServletRequest Spring에서 파일을 업로드, 사진을 등록하기 위해서 작업 과정에는 반드시 MultipartHttpServletRequest가 필요합니다. 기존 HttpServletRequest보다 좀 더 상위 호환?이라고 쉽게 이해하시면 되는데요. 기존 request값을 담고 있으면서, input의 file 또한 담아서 파일을 공유할 수 있게 됩니다. 사용하기 위해 필요한 조치 1. pom.xml 리포지토리 설정. 2. DispatcherServlet에 Multipart 설정하기 3. enctype를 multipart로 설정하기 4. Controller에서 MultipartHttpServletRequest 사용하기 위의 3가지를 숙지 하셨다..
갑자기 프로젝트가 실행되지 않는다면 Spring에서 프로젝트가 실행되지 않는 경우는 여러가지의 경우가 존재합니다. 그러나 오늘 포스팅은 제가 겪은 것중 황당하고 어이없는 것에 대해 글을 올리려고 합니다. 저의 문제가 되었던 프로젝트는 DispatcherServlet이 세분화로 나뉘어진 특징이 있었습니다. DispatcherServlet의 설정은 관리하기 쉽게 하기 위해 나뉘어졌던 것인데, 오늘은 여기가 문제가 되었습니다. xml 중, tiles 입니다. 얘가 context-tiles.xml 로 명시되어 지금까지 프로젝트를 사용해왔으나 몇 시간동안 오류의 해석 끝에 내린 결론은 의 '>'가 부등호로 받아들여져서 프로젝트의 실행이 오류가 났던 것 입니다. xml에서 '>'는 부등호로 오해를 받기 쉽기 때문에..
Mybatis Sequence 만들기 SelectKey 활용하기 selectKey는 myBatis가 제공하는 기능 중 하나입니다. 서브 쿼리의 기능을 수행하고 있으며, 대표적인 기능으로 시퀀스 기능을 담당합니다. 일반 DB의 SQL문 보다 MYBATIS의 SQL문이 육안으로 보기에 더 편해진다는 장점이 있습니다. selectKey에서 가장 유심히 봐야한 것은 keyProperty와 order입니다. keyProperty는 해당 SQL문에서 해당 쿼리문의 결괏값을 불러오게 하는 key 값입니다. order는 대표적으로 before와 after로 나뉩니다. before는 본 SQL문이 실행되기 전에 먼저 실행되며, after는 본 SQL문이 실행된 후 실행되는 차이가 있습니다. 그 외 parameterTyp..
The reference to entity "characterEncoding" must end with the ';' delimiter. Spring, Xml Delimiter Error xml 작업 중, 이런 에러를 찾아 보게 됩니다. 에러가 뜨는 이유는 & 이녀석 때문인데요. xml은 & 문자를 구분하기 어려워합니다. 따라서 이 부분을 &로 고쳐주시면 됩니다. 사진과 같이 &를 &로 바꿔주면 끝~ Befor After
Spring FileUpload 에러 처리 목차 파일 업로드 중 에러 발생 Spring에서 fileUpload 작업을 하기 위해 작업을 하지만, Error가 내 앞을 반겼다. 이 문제의 가장 큰 원인은 submit을 했을 때, Controller와 Mapping이 되지 않는다는 것이다.그리고 Mapping이 되지 않는 것에는 설정이 가장 큰 원인이 된다. 에러 고치기 1. form의 enctype="multipart/form-data" 확인하기 2. pom.xml에서 commons가 등록이 되어있는지 확인한다. 3. servletDispatcher 설정 확인하기 4. MultipartHttpServletRequest로 request값 가져오는지 확인하기 마무리 Spring에서 file 업로드를 하기 위해..
Properties 고급 버전 목차 Message에 대해 알아보자 기존 Properties를 JSP에서도 쉽게 활용할 수 있는 방법 중 하나입니다. 좀 더 다채롭게 변형시킬 수도 있고, 간편하게 Properties를 접근할 수 있게 도와줍니다. XML 설정하기 /WEB-INF/properties/data1 /WEB-INF/properties/data2 사용하고 있는 context.xml에 다음과 같은 xml을 등록해줍니다. 기존 Properties가 있다면, 이 설정 하나로도 끝났습니다. Properties, Java에서 호출하기 ReloadableResourceBundleMessageSource는 xml에 등록된 내용을 복사 붙여놓기를 진행합니다. 기존 Properties와 다르게 호출하게 됩니다. 여..
지난 시간에 이어 Properties를 사용하는 시간을 갖겠습니다. ▼ propeties 정의하기 2개의 properties안에는 총 8개의 문자가 작성되어 있습니다. 우리는 이를 사용하기 위해 properties를 불러와야 합니다. Spring의 실행 시, index.jsp가 실행되는 것을 아는 이상, 이를 불러오도록 하겠습니다. 이 과정이 귀찮다면 main함수를 이용하셔도 상관없습니다. ▼ Properties 불러오는 방법 초간단 설명을 위하여, 한 개의 properties 보다는 2개의 properties를 이용하였습니다. 그리고 2개 이상의 properties를 불러오는 방법은 대표적으로 3가지의 방법이 존재합니다. @PropertySource를 이용하여 한 개씩 부르는 방법 @PropertySo..