(四)微信点餐项目记录-买家端商品DAO层的开发与测试

现在进入第二个表Product_info的DAO层的开发与测试。

整个实现的过程和第一个表商品类目表的实现方式类似,分三步走的策略。
第一步建立一个实体类和数据库中的商品表是对应的。
第二步建立一个接口继承JPA。
第三步进行测试。

本篇文章的作用主要就是添加买家商品,查询商品的状态。
1.首先建立起一个ProductInfo实体类,方法和第一个表类似,每一个属性对应数据库表中的每一个属性。

// An highlighted block
@Data
@Entity
@NoArgsConstructor
public class ProductInfo {

    @Id
    private String productId;

    //商品名称
    private String productName;

    //商品价格
    private BigDecimal productPrice;

    //商品库存
    private Integer productStock;

    //商品描述
    private String productDescription;

    //商品小图
    private String productIcon;

    //商品状态,0正常,1下架
    private Integer productStatus;

    //商品类目编号
    private Integer categoryType;
    }

2.建立一个接口ProductInfoRepository,继承JpaRespository接口,该接口里面写入刚才建立的实体类和该实体类的主键

因为JPA中没有查询商品状态这个方法,所以我们需要自己添加这个方法,

public interface ProductInfoRepository extends JpaRepository<ProductInfo,String> {//它的主键是String ,所以写个String

    //要查询上架的商品 。通过商品的状态来查
    List<ProductInfo> findByProductStatus(Integer productStatus);//自此,商品的dao我们已经开发完成,其实就是做了两步,一步是productInfo这个类的创建,一个是这个jpa的窗口
    
//最后一步很重要,一定要测试
}

3.根据建立好的接口进行测试。首先就是建立一个ProductInfoRepository接口的对象repository,根据这个对象,我们可以使用它的set方法,给新建的实体类对象ProductInfo对象存入其属性对应的值,然后再保存这个对象。
第二个测试一下查询状态的方法,把状态为0的商品存入到list这个列表中。

// An highlighted block
@RunWith(SpringRunner.class)
@SpringBootTest
public class ProductInfoRepositoryTest {

    @Autowired
    private ProductInfoRepository repository;//每次测试前都要搞个Jpa这个接口的对象

    @Test
    public void saveTest(){//就这样,就给这个表ProductInfo添加进了一行信息
        ProductInfo productInfo=new ProductInfo();
        productInfo.setProductId("13456");
        productInfo.setProductName("皮蛋粥");
        productInfo.setProductPrice(new BigDecimal(3.2));
        productInfo.setProductStock(100);
        productInfo.setProductDescription("很好喝的粥");
        productInfo.setProductIcon("http://xxxxx.jpg");
        productInfo.setProductStatus(0);
        productInfo.setCategoryType(2);

        ProductInfo result=repository.save(productInfo);
        Assert.assertNotNull(result);
    }

@Test//我们需要测试一下查询上架的商品
    public void findByProductStatus() throws Exception{
       List<ProductInfo> productInfos= repository.findByProductStatus(0);//0代表上架
       Assert.assertNotEquals(0,productInfos.size());//只要有一个0,就算是通过

	}
}

至此,商品表的DAO层开发和测试完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值