DAO:ProductCategory。Service可以简化一些,叫CategoryService。

package com.imooc.sell.service;

import com.imooc.sell.dataobject.ProductCategory;

import java.util.List;

/**
* 类目
* Created by zhongzh
* 2018-05-26 23:53
*/
public interface CategoryService {
ProductCategory findOne(Integer categoryId);//管理后台使用
List<ProductCategory> findAll();//管理后台用的
List<ProductCategory> findByCategoryTypeInTest(List<Integer> categoryTypeList);
//新增和更新都是save方法
ProductCategory save(ProductCategory productCategory);
}
package com.imooc.sell.service.impl;

import com.imooc.sell.dataobject.ProductCategory;
import com.imooc.sell.repository.ProductCategoryRepository;
import com.imooc.sell.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; /**
* Created by zhongzh
* 2018-05-27 0:02
*/ @Service //Service端要加一个注解
public class CategoryServiceImpl implements CategoryService { @Autowired
private ProductCategoryRepository repository;//引入DAO @Override
public ProductCategory findOne(Integer categoryId) {
return repository.getOne(categoryId);
} @Override
public List<ProductCategory> findAll() {
return repository.findAll();
} @Override
public List<ProductCategory> findByCategoryTypeInTest(List<Integer> categoryTypeList) {
return repository.findByCategoryTypeIn(categoryTypeList);
} @Override
public ProductCategory save(ProductCategory productCategory) {
return repository.save(productCategory);
}
}

com.imooc.sell.service.impl.CategoryServiceImpl的四个方法都给它测试一下

测试类

package com.imooc.sell.service.impl;

import org.junit.Test;

import static org.junit.Assert.*;

public class CategoryServiceImplTest {

    @Test
public void findOne() {
} @Test
public void findAll() {
} @Test
public void findByCategoryTypeInTest() {
} @Test
public void save() {
}
}

增加注解

package com.imooc.sell.service.impl;

import com.imooc.sell.dataobject.ProductCategory;
import org.junit.Assert;
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 static org.junit.Assert.*; @RunWith(SpringRunner.class)
@SpringBootTest
public class CategoryServiceImplTest { @Autowired
private CategoryServiceImpl categoryService; @Test
public void findOne() {
ProductCategory productCategory = categoryService.findOne(1);
Assert.assertEquals(new Integer(1),productCategory.getCategoryId());
} @Test
public void findAll() {
} @Test
public void findByCategoryTypeInTest() {
} @Test
public void save() {
}
}

com.imooc.sell.dataobject.ProductCategory要增加一个getCategoryId()方法才行

package com.imooc.sell.dataobject;

//import javax.persistence.Table;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Proxy; import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date; /**
* 类目
* Created by zhongzh
* 2018-05-20 9:31
* s_product_category
*/
//@Table(name = "s_product_category")
@Entity//把数据库映射成对象
@Proxy(lazy = false)
@DynamicUpdate //
@Data//@Data包含生成getter、setter和toString()方法
//@Getter//如果只是需要Getter那就引入Getter
//@Setter//如果只是需要Setter那就引入Setter
//@ToString//如果只是需要ToString那就引入ToString
public class ProductCategory{
/** 类目id. */
@Id//Id是主键,自增类型的。
//@GeneratedValue//相当于调用了native策略
//@GeneratedValue(strategy = GenerationType.AUTO)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer categoryId;//字段名的命名方式也是一样的,把下划线改成为空。
/** 类目名字. */
private String categoryName; /** 类目编号. */
private Integer categoryType;
/** 创建时间. */
private Date createTime;
/** 修改时间. */
private Date updateTime;
//不要忘了Getter和Setter方法
/*
public Integer getCategoryId() {
return categoryId;
} public void setCategoryId(Integer categoryId) {
this.categoryId = categoryId;
} public String getCategoryName() {
return categoryName;
} public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
} public Integer getCategoryType() {
return categoryType;
} public void setCategoryType(Integer categoryType) {
this.categoryType = categoryType;
} public Date getCreateTime() {
return createTime;
} public void setCreateTime(Date createTime) {
this.createTime = createTime;
} public Date getUpdateTime() {
return updateTime;
} public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
} @Override
public String toString() {
return "ProductCategory{" +
"categoryId=" + categoryId +
", categoryName='" + categoryName + '\'' +
", categoryType=" + categoryType +
'}';
}
*/ public ProductCategory(String categoryName, Integer categoryType) {
this.categoryName = categoryName;
this.categoryType = categoryType;
} public ProductCategory() {
super();
} public Integer getCategoryId() {
return categoryId;
}
}

package com.imooc.sell.service.impl;

import com.imooc.sell.dataobject.ProductCategory;
import org.junit.Assert;
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.util.Arrays;
import java.util.List; import static org.junit.Assert.*; @RunWith(SpringRunner.class)
@SpringBootTest
public class CategoryServiceImplTest { @Autowired
private CategoryServiceImpl categoryService; @Test
public void findOne() {
ProductCategory productCategory = categoryService.findOne(10);
Assert.assertEquals(new Integer(1),productCategory.getCategoryId());
} @Test
public void findAll() {
List<ProductCategory> productCategoryList = categoryService.findAll();
Assert.assertNotEquals(0,((List) productCategoryList).size());//如果集合的总数不等于null,如果productCategoryList的size不等于0,至少是有内容的。
} @Test
public void findByCategoryTypeInTest() {
List<ProductCategory> productCategoryList = categoryService.findByCategoryTypeInTest(Arrays.asList(1,2,4));
Assert.assertNotEquals(0,productCategoryList.size());
} @Test
public void save() {
ProductCategory productCategory = new ProductCategory("男生专享",10);
ProductCategory result = categoryService.save(productCategory);
Assert.assertNotNull(result);
}
}


因为类目并没有给买家端提供专门的接口,所以类目相关Controller层不用再写了。而是商品,下一节开发商品相关的功能。

4-3 买家类目-service的更多相关文章

  1. 4-2 买家类目-dao(下)

    查询出来的对象ProductCategory就已经有updateTime和createTime了,然而你只是把对象的categoryType给修改了一下,修改之后就执行save方法保存了.所以它还是原 ...

  2. 如何增加亚马逊listing多个类目节点

    流量是电商销售的必要因素,可以说,任何成功的电商平台都离不开流量.亚马逊listing优化做得好,不仅能提高产品的曝光率,还能提升转换率,而好的类目可以吸引大的流量.帮你快速爬升. 首先我们来了解一下 ...

  3. 干货 | 揭秘如何增加listing多个类目节点

    流量是电商销售的必要因素,可以说,任何成功的电商平台都离不开流量.亚马逊listing优化做得好,不仅能提高产品的曝光率,还能提升转换率,而好的类目可以吸引大的流量.帮你快速爬升. 首先我们来了解一下 ...

  4. JAVAEE——宜立方商城03:商品类目选择、Nginx端口或域名区分虚拟机、Nginx反向代理、负载均衡、keepalived实现高可用

    1. 学习计划 第三天: 1.商品类目选择(EasyUI的tree实现) 2.图片上传 a) 图片服务器FastDFS(Nainx部分) 2. 商品类目选择 2.1. 原型 2.2. 功能分析 展示商 ...

  5. 商品类目和商品大广告的Redis缓存

    (dubbo)主要的实现类: 商品类目的Redis缓存 com.bjsxt.ego.portal.service.impl.PortalItemCatServiceImpl package com.b ...

  6. Objective-C中的类目,延展,协议

    Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...

  7. OC中协议, 类目, 时间, 延展, 属性

    只有继承和协议需要引IMPORT "头文件"; 必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @pr ...

  8. Objective - C - 添加类目 - NSDate

    1.类目为系统内部的类或者是没有源代码的类添加方法,不有添加实例变量 2.添加的方法会成为原类的一部分,子类照样可以使用 3.类目的文件名为原类名+文件名 4.既可以添加实例方法,也可以添加类方法 X ...

  9. Objective-C学习笔记类目、协议

    不是所有的方法都可以被覆盖的!比如:intValue就不能被覆盖!! 原因正在查找中! 别人的电脑上却可以! 类目.h件 #import <Foundation/Foundation.h> ...

随机推荐

  1. axios增加的自定义header,后端request取不到

    1.拦截器配置 <!--拦截器--> <mvc:interceptors> <!-- web端增加头部接口 --> <mvc:interceptor> ...

  2. MySQL数据库连接不上的一种可能的解决办法

    右键单击我的电脑->管理->服务和应用程序->服务,右键停止如图所示的服务

  3. CentOS 7 & Chinese Fonts bug

    CentOS 7 & Chinese Fonts bug # check $ yum grouplist $ yum grouplist hidden # root $ yum groupin ...

  4. [ C语言 ] 迷宫 迷宫生成器 [ 递归与搜索 ]

    [原创]转载请注明出处 [浙江大学 程序设计专题] [地图求解器] 本题目要求输入一个迷宫地图,输出从起点到终点的路线. 基本思路是从起点(Sx,Sy)每次枚举该格子上下左右四个方向,直到走到终点(T ...

  5. android开发里跳过的坑——listview不显示

    在蓝牙回调接口public void onLeScan(BluetoothDevice device, int arg1, byte[] arg2)里面调用adpter.notifyDataSetCh ...

  6. 【POJ3680】Intervals(费用流)

    题意:有n条线段,每条有起点,终点和一个权值 要求选取一些线段,使它们的权值和最大,并且使每一个点被覆盖不超过k次 1 ≤ K ≤ N ≤ 200 1 ≤ ai < bi ≤ 100,000, ...

  7. 【Github】如何删除github上的项目

    1.登录你的githup账户,进入到仓库页面如下图 2.点击setting进入到该仓库的设置界面 3.复制一下仓库的名称,然后下拉到最后,点击delete this repository 4.将刚刚复 ...

  8. [bzoj2733][HNOI2012]永无乡_权值线段树_线段树合并

    永无乡 bzoj-2733 HNOI-2012 题目大意:题目链接. 注释:略. 想法: 它的查询操作非常友善,就是一个联通块内的$k$小值. 故此我们可以考虑每个联通块建一棵权值线段树. 这样的话每 ...

  9. Warm up-HUD4612(树的直径+Tarjin缩点)

    http://acm.hdu.edu.cn/showproblem.php?pid=4612 题目大意:求加一条边最小的桥数 先用Tarjin缩点求出一棵树,然后用bfs求出树的直径,树的直径就是加一 ...

  10. 笔记:Javac编译器

    Javac编译器是把 *.java 文件转换为 *.class 文件,是一个前端编译器:对应着有一种把字节码转变为机器码的编译器,称为JIT编译器(Just In Time Compiler),比如 ...