# Sharding-JDBC 从入门到精通(9)- 综合案例(二)添加商品

Sharding-JDBC 从入门到精通(9)- 综合案例(二)添加商品

一、Sharding-JDBC 综合案例-添加商品-dao

1、在 shopping 子工程(子模块)中,创建 dao 接口类 ProductDao.java

/**
 *   dbsharding\shopping\src\main\java\djh\it\shopping\dao\ProductDao.java
 *
 *   2024-7-3 创建 dao 接口类 ProductDao.java
 */
package djh.it.shopping.dao;

import djh.it.shopping.entity.ProductDescript;
import djh.it.shopping.entity.ProductInfo;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Mapper
@Component
public interface ProductDao {
    //添加商品基本信息
    @Insert("insert into product_info(store_info_id, product_name, spec, region_code, price) " +
            " values(#{storeInfoId},#{productName},#{spec},#{regionCode},#{price})")
    @Options(useGeneratedKeys = true, keyProperty = "productInfoId", keyColumn = "product_info_id")
    int insertProductInfo( ProductInfo productInfo );

    //添加商品描述信息
    @Insert("insert into product_descript(product_info_id, descript, store_info_id) " +
            " values(#{productInfoId}, #{descript}, #{storeInfoId})")
    @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
    int insertProductDescript( ProductDescript productDescript );
}

二、Sharding-JDBC 综合案例-添加商品-service

1、在 shopping 子工程(子模块)中,创建 service 接口类 ProductService.java

/**
 *   dbsharding\shopping\src\main\java\djh\it\shopping\service\ProductService.java
 *
 *   2024-7-3 创建 service 接口类 ProductService.java
 */
package djh.it.shopping.service;

import djh.it.shopping.entity.ProductInfo;

public interface ProductService {
    //添加商品
    public void createProduct( ProductInfo productInfo );
}

2、在 shopping 子工程(子模块)中,创建 service 实现类 ProductServiceImpl.java

/**
 *   dbsharding\shopping\src\main\java\djh\it\shopping\service\impl\ProductServiceImpl.java
 *
 *   2024-7-3 创建 service 实现类 ProductServiceImpl.java
 */
package djh.it.shopping.service.impl;

import djh.it.shopping.dao.ProductDao;
import djh.it.shopping.entity.ProductDescript;
import djh.it.shopping.entity.ProductInfo;
import djh.it.shopping.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    ProductDao productDao;

    @Override
    @Transactional
    public void createProduct( ProductInfo productInfo ) {
        ProductDescript productDescript = new ProductDescript();
        //设置商品描述信息
        productDescript.setDescript(productInfo.getDescript());

        //调用dao 向商品信息表
        productDao.insertProductInfo(productInfo);

        //将商品信息id设置到 productDescript
//        productDescript.setId(productInfo.getProductInfoId());  //error
        productDescript.setProductInfoId(productInfo.getProductInfoId());

        //设置店铺id
        productDescript.setStoreInfoId(productInfo.getStoreInfoId());

        //向商品描述信息表插入数据
        productDao.insertProductDescript(productDescript);
    }
}

三、Sharding-JDBC 综合案例-添加商品-测试

1、在 shopping 子工程(子模块)中,创建 测试类 ShardingTest.java

/**
 *   dbsharding\shopping\src\test\java\djh\it\shopping\ShardingTest.java
 *
 *   2024-7-3 创建 测试类 ShardingTest.java
 */
package djh.it.shopping;


import djh.it.shopping.entity.ProductInfo;
import djh.it.shopping.service.ProductService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.math.BigDecimal;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ShoppingBootstrap.class)
public class ShardingTest {

    @Autowired
    ProductService productService;


    @Test   //添加商品
    public void testCreateProduct(){
        ProductInfo productInfo = new ProductInfo();

        productInfo.setStoreInfoId(1L);  //店铺id(向 product_db_2 中插入数据)

        productInfo.setProductName("Java编程思想");  //商品名称
        productInfo.setSpec("大号");  //商品规格
        productInfo.setPrice(new BigDecimal(60));  //商品价格
        productInfo.setRegionCode("110100");  //商品产地
        productInfo.setDescript("《java编程思想》这本书不错!!!");  //商品描述

        productService.createProduct(productInfo);
    }
}

在这里插入图片描述

上一节关联链接请点击
# Sharding-JDBC从入门到精通(8)- 综合案例(一)数据库设计搭建与分片策略配置

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

段子手-168

你的鼓励将是我你的创作最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值