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 {@AutowiredProductDao productDao;@Override@Transactionalpublic void createProduct( ProductInfo productInfo ) {ProductDescript productDescript = new ProductDescript();//設置商品描述信息productDescript.setDescript(productInfo.getDescript());//調用dao 向商品信息表productDao.insertProductInfo(productInfo);//將商品信息id設置到 productDescript
// productDescript.setId(productInfo.getProductInfoId()); //errorproductDescript.setProductInfoId(productInfo.getProductInfoId());//設置店鋪idproductDescript.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 {@AutowiredProductService 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)- 綜合案例(一)數據庫設計搭建與分片策略配置