NamedParameterJdbcTemplate LIKE 검색하는 방법저의 경우 외부 시스템 DB와 연동시 NamedParameterJdbcTemplate을 자주 사용하곤 합니다. (내부 시스템은 기본적으로 JPA 사용)NamedParameterJdbcTemplate의 경우에는 파라미터를 Named Parameter라 불리우는 방식으로 사용하는데 :pram과 같은 형식으로 콜론을 붙여 사용합니다.그런데 LIKE 검색의 경우 아래와 같이 사용하는 분들(제 이야기)이 계십니다.String sql = "SELECT * FROM tbl_attend WHERE LIKE ATTEND_CD LIKE %:attendCode%";그러나 LIKE문 아래와 같은 형태로 사용해야 합니다.public List getAttend..
Spring Framework
2020. 1. 6. 23:39
[Spring] 스프링 SimpleJdbcCall 이용하여 프로시저 호출해서 out 파라미터 얻기
스프링 SimpleJdbcCall 이용하여 프로시저 호출해서 out 파라미터 얻기SimpleJdbcCall을 이용하면 프로시저 호출을 간단하게 할 수 있습니다.만약 MS-SQL을 기준으로 dbo.sp_get_user_info라는 프로시저의 파라미터가 다음과 같이 있다고 가정했을때 이 프로시저는 두개의 입력 파라미터를 받아 두개의 출력 파라미터에 결과를 리턴합니다.dbo.sp_get_user_info@UserNo varchar(10) IN,@Name varchar(10) IN,@Age int OUT,@Grade varchar(10) OUT대략적인 코드는 다음과 같습니다. SimpleJdbcCall은 java.sql.DataSource 객체를 의존하므로 생성시 주입해주어야 합니다.public class Us..
Spring Framework
2019. 6. 5. 14:24
[Spring] 스프링 기동시 Error creating bean with name 'requestMappingHandlerMapping' 오류원인
스프링 기동시 Error creating bean with name 'requestMappingHandlerMapping' 오류원인만약 스프링 MVC를 사용한 웹 어플리케이션 기동시 아래와 같은 오류가 났다면 컨트롤러의 @RequestMapping 으로 설정된 경로를 확인하시기 바랍니다. 예외 로그를 자세히 보면 나와있지만 특정 맵핑 경로가 중복되어 발생한 오류입니다.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in org.springframework.web.servlet.config.annotation.DelegatingWe..
Spring Framework
2019. 1. 8. 09:50
[Spring] MSSQL JdbcTemplate 프로시저 실행시 xx 문에서 결과 집합을 반환하지 않았습니다. 오류 원인
MSSQL JdbcTemplate 프로시저 실행시 xx 문에서 결과 집합을 반환하지 않았습니다. 오류 원인JdbcTemplate을 사용하여 프로시저를 실행했고 프로시저는 실행 결과를 출력하도록 되어 있었습니다. DBMS는 MSSQL Server입니다. 그런데 다음과 같은 오류가 발생합니다.org.springframework.jdbc.UncategorizedSQLException...Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 문에서 결과 집합을 반환하지 않았습니다.분명 SQL 클라이언트로 직접 프로시저를 실행하면 결과 테이블이 반환되는데, JdbcTemplate을 통해 실행하면 위와 같은 오류가 발생합니다.이럴때에는 SQL 구문 앞에 다음과 ..
Spring Framework
2018. 10. 30. 22:34
[Spring] XML 설정과 @Autowired 설정이 겹쳤을때 의존주입 우선순위
XML 설정과 @Autowired 설정이 겹쳤을때 의존주입 우선순위스프링 어플리케이션에서 객체의 의존관계를 설정할때 XML이나 자바 코드 설정을 통해 빈을 정의하고 의존 관계를 정의할수도 있지만 @Autowired를 통한 자동 의존주입을 이용할수도 있습니다. 그렇다면 만약 XML설정에서 의존관계를 설정함과 동시에 @Autowired를 통해 자동 의존주입을 받는 경우 어떤 설정이 우선순위를 갖게 될까요?이번글에서는 XML을 통한 명시적인 의존주입 설정과 @Autowired를 통한 자동의존주입 설정 두 가지를 적용하여 어떤 설정이 우선순위를 갖는지 테스트해보았습니다. 테스트 버전은 스프링 4.1.0 버전을 사용하였으니 참고해 주세요.MemberDao 클래스MemberDao 클래스입니다. 나중에 우선순위를 테..
Spring Framework
2018. 10. 22. 17:13
[Spring]@Primary 어노테이션과 UnsatisfiedDependencyException예외 more than one 'primary' bean 원인 및 해결 방법
UnsatisfiedDependencyExceptionUnsatisfiedDependencyException스프링에서 UnsatisfiedDependencyException이 발생하는 경우가 있습니다. UnsatisfiedDependencyException은 예외명에서도 알 수 있듯이 스프링 빈 객체들이 생성되는 과정에서 의존주입을 하게 되는데, 필드에 해당하는 의존관계를 만족시킬 수 없을때 발생하는 예외입니다.쉽게 말해 의존관계를 설정하는데 실패했다는 뜻입니다.Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sequenceGener..
Spring Framework
2018. 9. 19. 12:55
[Spring] 스프링 properties 사용시 UnsatisfiedDependencyException 발생 원인
스프링 properties 사용시 UnsatisfiedDependencyException 발생 원인서버를 기동하던 중에 UnsatisfiedDependencyException이 발생하면서 BeanCreationException예외가 발생하였습니다. BeanCreationException은 말그대로 스프링빈 객체 생성중에 특정 예외가 발생하여 빈 생성이 되지 못할때 던져지는 예외입니다. 예외클래스명에도 나와있듯이 원인은 명확한데, 특정 필드에 의존주입이 되어 있을것으로 예상했지만 의존주입에 실패했기 때문에 발생하는 것입니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'DataSo..
Spring Framework
2018. 7. 24. 00:10
[스프링 프레임워크] Multiple ResultSets, SELECT 결과 TABLE 여러개일 때
결과 테이블이 여러개 - ResultSet이 여러개 리턴하는 저장 프로시저 SP저장 프로시저(Stored Procedure)의 실행 결과가 여러 테이블을 출력할 수 있습니다. 이러한 경우 단순히 JdbcTemplate 등에서 사용하는 queryForObject() 나 queryForList() 등의 메서드로는 하나의 테이블 결과만을 다룰 수 있기 때문에 여러 테이블이 결과로 리턴되는 경우 처리할 수 없습니다.JDBC API 측면에서 보면 쿼리의 실행 결과가 여러 테이블을 리턴한다는 것은 ResultSet을 여러개 리턴한다는 것입니다.MySQL 샘플다음은 여러 테이블을 결과로 리턴하는 매우 심플한 예제입니다. 별 의미 있는 DB는 아니며 단순히 예로 사용하기 위한 두 개의 테이블입니다. 다시 보니 인코딩도..
Spring Framework
2018. 7. 23. 18:30
[스프링 프레임워크] Spring JDBC SQLException Access denied for user 오류 해결 방법
java.sql.SQLException: Access denied for user 예외스프링 프레임워크에서 JDBC 연동을 하는데, MySQL 서버에 대한 DataSource 생성시 예외가 발생했습니다. 정확히는 커넥션 연결시 발생한 것입니다.[main] [2018-07-23 14:47:17] INFO com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource:getPoolManager - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoComm..
Spring Framework
2018. 1. 22. 21:11
[스프링 프레임워크] CharacterEncodingFilter를 통한 UTF-8 한글 인코딩 처리
스프링 인코딩 처리스프링은 웹 요청과 응답에 대한 인코딩 처리를 위해 CharacterEncodingFilter를 제공합니다. 인코딩 필터의 경우 모든 프로젝트에서 사용 가능한 공통적인 기능이므로 스프링프레임워크 측에서 번거로움을 피하기 위해 제공하는 것 같습니다.CharacterEncodingFilter 클래스는 Servlet 표준 스펙인 javax.servlet.Filter 인터페이스를 구현한 클래스이기 때문에 기존의 Servlet, JSP에서 사용하던 필터와 똑같이 사용 가능합니다.web.xml을 통해 필터를 설정하는 경우다음과 같이 사용 가능합니다. CharacterEncodingFilter를 필터로 등록해두고 의 encoding 속성을 통해 인코딩 방식을 설정해줄 수 있습니다.또한 을 통해 어느..