Sharding-JDBC 从入门到精通(9)- 综合案例(二)添加商品
一、Sharding-JDBC 综合案例-添加商品-dao
1、在 shopping 子工程(子模块)中,创建 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.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.springframework.stereotype.Component;
@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
package djh.it.shopping.service;
import djh.it.shopping.entity.ProductInfo;
public interface ProductService {
public void createProduct( ProductInfo productInfo );
}
2、在 shopping 子工程(子模块)中,创建 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());
productDao.insertProductInfo(productInfo);
productDescript.setProductInfoId(productInfo.getProductInfoId());
productDescript.setStoreInfoId(productInfo.getStoreInfoId());
productDao.insertProductDescript(productDescript);
}
}
三、Sharding-JDBC 综合案例-添加商品-测试
1、在 shopping 子工程(子模块)中,创建 测试类 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);
productInfo.setProductName("Java编程思想");
productInfo.setSpec("大号");
productInfo.setPrice(new BigDecimal(60));
productInfo.setRegionCode("110100");
productInfo.setDescript("《java编程思想》这本书不错!!!");
productService.createProduct(productInfo);
}
}
上一节关联链接请点击
# Sharding-JDBC从入门到精通(8)- 综合案例(一)数据库设计搭建与分片策略配置