02 Aug

service dao 예제

이 예제는 모순되지만 간단히 말해서 DAO 패턴의 동기를 보여줍니다. 이 경우 기본 메서드는 UserDao 인스턴스를 사용하여 몇 가지 사용자 개체에서 CRUD 작업을 수행합니다. 나를 위해, 공구는 콩을 자동 배선 할 때 특히 중요합니다. 추가 지원을 통해 코드를 탐색하는 것은 거의 어렵습니다. 예를 들어 IntelliJ IDEA의 궁극적인 버전을 사용하는 경우 IntelliJ가 마커를 거의 추가하지 않으므로 필드에서 자동 유선 종속성으로 직접 이동할 수 있습니다. 컨트롤러에서 DAO에 액세스할 수 있습니다. 그러나 가장 좋은 방법은 Service 개체가 데이터베이스에 대한 모든 액세스를 수행하도록 하는 것이 훨씬 더 깨끗합니다. 이 방법은 우려 분리 패턴을 말합니다. 따라서 OpenPaymentService 클래스에서 DAO 액세스를 포함하여 응용 프로그램의 모든 비즈니스 논리를 작성했습니다. 이번에는 @Service 개의 추가 를 사용합니다(이전에 이에 대해 이야기했습니다). 또한 우리는 세터 주입과 일부 DAOs를 주입하고 있습니다. 일부 비즈니스 방법은 가장 효과적으로 구현되지 는 않지만 일반 DAO 논리를 혼합하거나 HQL을 사용하여 자체 쿼리를 만들 수 있음을 보여 주었습니다. 우리는 기준 API를 선택 했을 수 있습니다., 그것은 정말 중요 하지 않습니다 지금.

HQL에 대 한 가장 큰 단점은 그것은 일반 문자열 그래서 그것은 친절 한 리팩터링 되지 않습니다-적절 한 도구를 사용 하지 않는 한. 예를 들어 IntelliJ는 일반 문자열에 대해서도 자동 완성을 가지고 있습니다. 그것은 단지 당신이 HQL을 작성하고 있다는 것을 알아낸다. 꽤 유용한 또한 HQL 콘솔, IntelliJ 하나 있고 이클립스에 대 한 플러그인. 테스트 클래스 타임시트서비스스패키지 org.timesheet.service에 src/test/java 폴더에 넣어 보겠습니다. 다음 코드에서는 jdbcTemplate 빈을 사용하는 방법을 참고하십시오: 이 예제에서는 Spring MVC 프레임워크를 사용하여 hello 월드 웹 응용 프로그램을 빌드합니다. 스프링 MVC는 스프링 프레임워크의 가장 중요한 모듈 중 하나입니다. 강력한 Spring IoC 컨테이너를 기반으로 하며 컨테이너 기능을 광범위하게 사용하여 구성을 단순화합니다.

안녕하세요 – 위의 예에서는 @ExceptionHandler 또는 @ControllerAdvice 사용하여 예외 처리를 추가하고 컨트롤러 계층의 일반적인 예외 처리 클래스를 통해 DAO 계층에서 throw된 예외를 처리하는 방법을 보여 줍니다. DAO 클래스보다 고객 테이블이 있는 경우 OrderDAO라고 불릴 수 있는 경우와 마찬가지로 제품 테이블이 있는 경우 OrderDAO라고 지정해야 하는 경우 와 같이 DAO 클래스 이름을 테이블 이름과 동일하게 만들어야 합니다. 가능하지 않은 경우 공용 정적 최종 문자열 테이블 = “ORDER_XYZ”를 선언하는 것이 고려되면 특정 DAO 클래스가 연결하는 테이블을 쉽게 상관 관계가 있습니다. 이상적으로는 DAO 클래스의 이름을 찾아서 테이블 이름을 알아야하지만 최악의 경우 클래스 맨 위에 이러한 필드가 포함되어야합니다. 디자인 패턴은 프로그래밍 방식에 기반을 두고 있으므로 언어와 프레임워크는 독립적입니다. 아래의 의견에 귀하의 의견을 남겨 주시기 바랍니다.