本文是我在自身学习过程中学到的业务逻辑,原意是实现类商城项目的收藏功能,业务逻辑是打算调用第一个mapper的查询、第二个mapper的添加,核心便是数据的转储。
因为是类商城项目因此定义为GoodsXXXX
控制层:
GoodsController
@Controller
public class GoodsController {
@Autowired
private GoodsService gService;
@Autowired
private ListService lService;
// 将一个表中的数据拉取到另一个表当中
@RequestMapping("/toinsertlist.do")
public ModelAndView insertlist(Integer gid) { // 传入参数gid
Goods goods = gService.selectGoodsByGid(gid); // 调用gService里面的selectGoodsByGid方法
// 根据gid进行处理出来的数据封装到Goods类型的goods中
Lists lists = new Lists(); // 新声明一个lists
lists.setGid(goods.getGid()); // 通过get方法获取到goods中的属性值并转储到lists当中
lists.setGoodsname(goods.getGoodsname());
lists.setNumber(goods.getNumber());
lists.setDate(goods.getDate());
lists.setVolume(goods.getVolume());
lists.setPrice(goods.getPrice());
lists.setMenu(goods.getMenu());
lists.setPicture(goods.getPicture());
int i = lService.insertlist(lists); // 最后调用lService里的insertlist方法将lists存储到新的数据表当中。
if (i > 0) {
System.out.println("添加成功!"); // 通过int类型的返回值 i 来判断是否进行了该方法处理。
return new ModelAndView("redirect:toglist.do");
}
System.out.println("添加失败!");
return null;
}
业务dao层:(通用mapper)
第一个mapper
package com.ssm.dao;
import com.ssm.entity.Goods;
import tk.mybatis.mapper.common.Mapper;
public interface GoodsMapper extends Mapper<Goods>{
}
第二个mapper
package com.ssm.dao;
import com.ssm.entity.Lists;
import tk.mybatis.mapper.common.Mapper;
public interface ListMapper extends Mapper<Lists>{
}
实体类:
goods.java(使用了lombok,自动为属性生成构造器、getter/setter、equals、hashcode、toString方法)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name="goods")
public class Goods {
@KeySql(useGeneratedKeys=true)
@Id
private Integer gid;
private String goodsname;
private Integer number;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
private Integer volume;
private Integer price;
private String menu;
private String picture;
}
Lists.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name="list")
public class Lists {
@KeySql(useGeneratedKeys=true)
@Id
private Integer gid;
private String goodsname;
private Integer number;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
private Integer volume;
private Integer price;
private String menu;
private String picture;
}
业务层:
GoodsService:
public interface GoodsService {
Goods selectGoodsByGid(Integer gid); //根据Gid查
}
ListService
public interface ListService {
int insertlist(Lists lists); //添加
}
实现类:
GoodServiceImpl:
@Service
public class GoodsServiceImpl implements GoodsService {
@Autowired
private GoodsMapper gMapper;
//根据id查询
@Override
public Goods selectGoodsByGid(Integer gid) {
return gMapper.selectByPrimaryKey(gid);
}
ListServiceImpl:
@Service
public class ListServiceImpl implements ListService {
@Autowired
private ListMapper lMapper;
@Transactional
public int insertlist(Lists lists) {
return lMapper.insertSelective(lists);
}
}
欢迎各位带佬批评指正!