1. 程式人生 > 實用技巧 >ssm商城教學16.屬性管理

ssm商城教學16.屬性管理

效果

重啟tomcat,通過訪問地址

http://127.0.0.1:8080/tmall_ssm/admin_property_list?cid=12


可以看到屬性管理的介面

注: 這cid=12是分類的id,根據你的實際執行情況,採取不同的id值

Property

Property實體類已經和其他所有的實體類一起,在所有的逆向工程這個環節就一起自動生成好了。 不過僅僅有自動生成的實體類程式碼,還不足以支撐業務需要,所以在Property基礎上增加了一個Category 欄位。 這個屬性的用途將會在編輯功能講解步驟裡進行講解。

PropertyService

新建PropertyService,提供CRUD一套。 需要注意的是,因為在業務上需要查詢某個分類下的屬性,所以list方法會帶上對應分類的id。

packagecom.how2java.tmall.service;

importcom.how2java.tmall.pojo.Property;

importjava.util.List;

publicinterfacePropertyService {

voidadd(Property c);

voiddelete(intid);

voidupdate(Property c);

Property get(intid);

List list(intcid);

}

新增PropertyServiceImpl實現PropertyService對應的方法。通過呼叫自動生成的PropertyMapper就可以實現大部分方法了。

值得注意的是查詢的時候用到了輔助查詢類:PropertyExample
它的使用也很方便,這一行表示查詢cid欄位

example.createCriteria().andCidEqualTo(cid);

packagecom.how2java.tmall.service.impl;

importcom.how2java.tmall.mapper.PropertyMapper;

importcom.how2java.tmall.pojo.Category;

importcom.how2java.tmall.pojo.Product;

importcom.how2java.tmall.pojo.Property;

importcom.how2java.tmall.pojo.PropertyExample;

importcom.how2java.tmall.service.CategoryService;

importcom.how2java.tmall.service.PropertyService;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importjava.util.List;

@Service

publicclassPropertyServiceImplimplementsPropertyService {

@Autowired

PropertyMapper propertyMapper;

@Override

publicvoidadd(Property p) {

propertyMapper.insert(p);

}

@Override

publicvoiddelete(intid) {

propertyMapper.deleteByPrimaryKey(id);

}

@Override

publicvoidupdate(Property p) {

propertyMapper.updateByPrimaryKeySelective(p);

}

@Override

publicProperty get(intid) {

returnpropertyMapper.selectByPrimaryKey(id);

}

@Override

publicList list(intcid) {

PropertyExample example =newPropertyExample();

example.createCriteria().andCidEqualTo(cid);

example.setOrderByClause("id desc");

returnpropertyMapper.selectByExample(example);

}

}

PropertyController

packagecom.how2java.tmall.controller;

importjava.util.List;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Controller;

importorg.springframework.ui.Model;

importorg.springframework.web.bind.annotation.RequestMapping;

importcom.github.pagehelper.PageHelper;

importcom.github.pagehelper.PageInfo;

importcom.how2java.tmall.pojo.Category;

importcom.how2java.tmall.pojo.Property;

importcom.how2java.tmall.service.CategoryService;

importcom.how2java.tmall.service.PropertyService;

importcom.how2java.tmall.util.Page;

@Controller

@RequestMapping("")

publicclassPropertyController {

@Autowired

CategoryService categoryService;

@Autowired

PropertyService propertyService;

@RequestMapping("admin_property_add")

publicString add(Model model, Property p) {

propertyService.add(p);

return"redirect:admin_property_list?cid="+p.getCid();

}

@RequestMapping("admin_property_delete")

publicString delete(intid) {

Property p = propertyService.get(id);

propertyService.delete(id);

return"redirect:admin_property_list?cid="+p.getCid();

}

@RequestMapping("admin_property_edit")

publicString edit(Model model,intid) {

Property p = propertyService.get(id);

Category c = categoryService.get(p.getCid());

p.setCategory(c);

model.addAttribute("p", p);

return"admin/editProperty";

}

@RequestMapping("admin_property_update")

publicString update(Property p) {

propertyService.update(p);

return"redirect:admin_property_list?cid="+p.getCid();

}

@RequestMapping("admin_property_list")

publicString list(intcid, Model model, Page page) {

Category c = categoryService.get(cid);

PageHelper.offsetPage(page.getStart(),page.getCount());

List<Property> ps = propertyService.list(cid);

inttotal = (int)newPageInfo<>(ps).getTotal();

page.setTotal(total);

page.setParam("&cid="+c.getId());

model.addAttribute("ps", ps);

model.addAttribute("c", c);

model.addAttribute("page", page);

return"admin/listProperty";

}

}