jdbctemplate select 예제
  • 02
  • 08

이 예제에서는 특정 오류 코드 -12345가 번역되고 다른 오류는 기본 번역기 구현으로 번역됩니다. 이 사용자 지정 변환기를 사용 하려면 메서드 setExceptionTranslator를 통해 JdbcTemplate에 전달 하 고이 번역기가 필요한 모든 데이터 액세스 처리에 대 한이 JdbcTemplate를 사용 하는 데 필요한. 다음은 이 사용자 지정 변환기를 사용하는 방법의 예입니다. 데이터 액세스 계층의 초기화 메서드에서 SimpleJdbcInsert를 인스턴스화해야 합니다. 이 예제에서 초기화 방법은 setDataSource 메서드입니다. SimpleJdbcInsert 클래스를 하위 클래스로 분류할 필요가 없습니다. 새 인스턴스를 만들고 withTableName 메서드를 사용하여 테이블 이름을 설정하기만 하면 됩니다. 이 클래스의 구성 메서드는 SimpleJdbcInsert의 인스턴스를 반환하는 “유체” 스타일을 따르므로 모든 구성 메서드를 연결할 수 있습니다. 이 예제에서는 하나의 구성 메서드만 사용합니다. 나중에 여러 예의 예제를 볼 수 있습니다. MappingSqlQuery는 콘크리트 하위 클래스가 제공된 ResultSet의 각 행을 지정된 형식의 개체로 변환하기 위해 추상 mapRow(.)를 구현해야 하는 재사용 가능한 쿼리입니다. 다음 예제에서는 t_actor 관계에서 액터 클래스의 인스턴스에 데이터를 매핑하는 사용자 지정 쿼리를 보여 주습니다. 프로시저 이름이 아닌 함수 이름을 제공한다는 점을 제외하면 저장된 프로시저를 호출하는 것과 거의 동일한 방식으로 저장된 함수를 호출합니다.

withFunctionName 메서드를 구성의 일부로 사용 하 여 함수를 호출 하려는 것을 나타내고 함수 호출에 대 한 해당 문자열이 생성 됩니다. 특수 실행 호출 executeFunction 함수를 실행 하는 데 사용 되 고 결과 맵에서 반환 값을 검색할 필요가 없습니다 즉, 지정 된 형식의 개체로 함수 반환 값을 반환 합니다. executeObject라는 유사한 편의 메서드는 하나의 out 매개 변수만 있는 저장 프로시저에도 사용할 수 있습니다. 다음 예제는 행위자의 전체 이름을 반환 하는 get_actor_name 라는 저장 된 함수를 기반으로 합니다. 이 함수에 대한 MySQL 소스는 다음과 같습니다: 이 예제에서는 이전과 동일한 삽입을 사용하지만 ID를 전달하는 대신 자동 생성된 키를 검색하고 새 Actor 개체에 설정합니다. SimpleJdbcInsert를 만들 때 테이블 이름을 지정하는 것 외에도 usingGeneratedKeyColumns 메서드를 사용하여 생성된 키 열의 이름을 지정합니다. 다음은 모든 Oracle 데이터베이스와 함께 제공되는 sysdate()라는 함수를 호출하기 위해 저장 프로시저를 사용하는 간단한 DAO의 예입니다. 저장 프로시저 기능을 사용하려면 저장 프로시저를 확장하는 클래스를 만들어야 합니다. 이 예제에서 StoredProcedure 클래스는 내부 클래스이지만 저장프로시저를 다시 사용해야 하는 경우 최상위 클래스로 선언합니다. 이 예제에는 입력 매개 변수가 없지만 출력 매개 변수는 Class SqlOutParameter를 사용하여 날짜 유형으로 선언됩니다.

execute() 메서드는 프로시저를 실행하고 결과 맵에서 반환된 날짜를 추출합니다. 결과 맵에는 선언된 각 출력 매개 변수에 대한 항목이 있으며, 이 경우 매개 변수 이름을 키로 사용하여 하나만 입력합니다. SimpleJdbcCall 클래스는 데이터베이스의 메타데이터를 활용하여 명시적으로 선언할 필요가 없도록 인/아웃 매개 변수의 이름을 찾습니다. 그렇게 하려는 경우 또는 Java 클래스에 대한 자동 매핑이 없는 ARRAY 또는 STRUCT와 같은 매개 변수가 있는 경우 매개 변수를 선언할 수 있습니다. 첫 번째 예제에서는 MySQL 데이터베이스에서 VARCHAR 및 DATE 형식의 스칼라 값만 반환하는 간단한 프로시저를 보여 준다. 예제 프로시저는 지정된 행위자 항목을 읽고 out 매개 변수 의 형태로 first_name, last_name 및 birth_date 열을 반환합니다. execute 메서드의 마지막 부분에서 검색된 데이터를 반환 하는 데 사용할 Actor 인스턴스를 만듭니다. 다시 말하지만, out 매개 변수의 이름은 저장 프로시저에서 선언될 때 사용하는 것이 중요합니다.

Comments (0)

Leave a reply

Should you ever have a question, please dont hesitate to send a message or reach out on our social media.