위챗 주문 프로젝트 기록 - 바이어단 상품 유형 DAO층의 디자인과 테스트

10010 단어 JAVA 학습 노트
바이어단 유형의 디자인
1. 본 편은 주로 DAO층의 디자인과 개발을 대상으로 데이터베이스에 있는 제품을category 테이블은 DAO 레이어의 솔리드 클래스 ProductCategory 클래스에 매핑됩니다.구체적인 주해의 의미를 나는 코드에 주석을 썼다.
@Entity//jpa   ,      (ProductCategory)            ,             product_category。
@DynamicUpdate//            ,      。        ,        ,        
@Data//     get set  toString       ,          ,       jar    ,           。
public class ProductCategory {
    //  id
    @Id//   ,       
    @GeneratedValue//              
    private Integer categoryId;

    /**     . */
    private String categoryName;

    public ProductCategory() {
    }

    /**     . */
    private Integer categoryType;

    public ProductCategory(String categoryName, Integer categoryType) {
        this.categoryName = categoryName;
        this.categoryType = categoryType;
    }


2. DAO층의 클래스를 작성한 후 다음에는 JPA를 계승하는 인터페이스, Product Category Repository 인터페이스를 써야 한다.이 인터페이스를 쓰는 역할은 JPA가 우리가 쓴 실체류에 따라 자동으로 이 표를 만들 수 있고 Jpa Repository에서 기초적인 삭제 수정 방법을 정의하여 직접 사용할 수 있도록 하는 것이다.
// An highlighted block
public interface ProductCategoryRepository extends JpaRepository<ProductCategory,Integer> {

   List<ProductCategory> findByCategoryTypeIn(List<Integer> categoryTypeList);//              ,       ,       

}

3. 작성된 JPA 인터페이스에 따라 테스트 유형을 작성하고 JPA가 제공하는 기능과 자신이 쓰는 방법이 실현될 수 있는지 주로 검사한다.
@RunWith(SpringRunner.class)@SpringBootTest 일반적인 경우 @SpringBootTest와 @RunWith(SpringRunner.class) 주석을 사용하여 SpringBoot 테스트 프로젝트를 시작합니다.
@Autowired는 수식된 클래스에 주입 대상이 필요하다는 것을 표시합니다.spring은 @Autowired에 표시된 모든 클래스를 스캔한 다음 유형에 따라 ioc 용기에서 일치하는 클래스 주입을 찾습니다.
findById를 통해 이 테이블의 한 줄의 정보를 조회하고 set 방법을 통해 한 줄의 한 속성의 정보를 수정할 수 있습니다.수정이 끝난 후에 반드시 저장하고save 방법을 사용하세요.
Assert.assertNotEquals(null, result);이 방법은result가 비어 있는지 확인하는 것입니다. 비어 있으면 null로 되돌아갑니다.
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductCategoryRepositoryTest {

@Autowired
    private ProductCategoryRepository repository;
    DataSource dataSource;
@Test
    public void findOneTest(){
    ProductCategory productCategory=repository.findById(2).get();//    2.0       ,                。
    System.out.println(productCategory.toString());
}

    @Test
    @Transactional//          ,        
    public void saveTest() {
//        ProductCategory productCategory=repository.findById(2).get();//              ,         、
//        productCategory.setCategoryType(4);

        ProductCategory productCategory = new ProductCategory("    ", 3);//                ,            。
       productCategory.setCategoryId(3);
//       productCategory.setCategoryName("    ");//        ,     
       ProductCategory result= repository.save(productCategory);
//        Assert.assertNotNull(result);
        Assert.assertNotEquals(null, result);//      ,  result,     ,      ,   null
    }


    @Test
    public  void findByCategoryTest(){
        List<Integer> list= Arrays.asList(2,3,4);//      list
       List<ProductCategory> result= repository.findByCategoryTypeIn(list);
        Assert.assertNotEquals(0,result.size());
    }
}

이로써 바이어측 상품류 항목 DAO 층이 완성되고 테스트가 완료되었다.

좋은 웹페이지 즐겨찾기