智能商贸系统的CRUD&数据的丢失
1.增加功能
//添加
@RequestMapping("/save")
@ResponseBody
public Map<String,Object> save(Employee employee){
return saveOrUpdate(employee);
}
//添加或者修改
private Map<String,Object> saveOrUpdate(Employee employee){
Map<String,Object> map = new HashMap<>();
try {
employeeService.save(employee);
map.put(SUCCESS, true);
} catch (Exception e) {
e.printStackTrace();
map.put(SUCCESS, false);
map.put("msg", e.getMessage());
}
return map;
}
2.删除功能
@RequestMapping("/delete")
@ResponseBody // msgcovert 消息转化 EmployeeQuery query)=new
public Map<String,Object> delete(Long id){
Map<String,Object> map=new HashMap<>();
try {
employeeService.delete(id);
//System.err.println(1/0);
map.put("code", SUCCESSCODE);
map.put("msg", "操作成功");
}catch (Exception e){
e.printStackTrace();
map.put("code", ERRORCODE);
map.put("msg", "操作失败");
}
return map ;
}
3.修改功能
//修改
@RequestMapping("/update")
@ResponseBody
public Map<String,Object> update(Employee employee){
return saveOrUpdate(employee);
}
//添加或者修改
private Map<String,Object> saveOrUpdate(Employee employee){
Map<String,Object> map = new HashMap<>();
try {
employeeService.save(employee);
map.put(SUCCESS, true);
} catch (Exception e) {
e.printStackTrace();
map.put(SUCCESS, false);
map.put("msg", e.getMessage());
}
return map;
}
4.查询功能
@RequestMapping("/list")
@ResponseBody
public List<Employee> list(){
return employeeService.findAll();
}
// xmlhttprequest -ajax
@RequestMapping("/pageList")
@ResponseBody // msgcovert 消息转化 EmployeeQuery query)=new
public Map<String,Object> pageList(EmployeeQuery query){
System.out.println(query.getEmail());
System.out.println(query.getUsername());
System.out.println(query.getDeptId());
// map- <json
Page page = employeeService.findPageByQuery(query);
Map<String,Object> map=new HashMap<>();
map.put("rows", page.getContent());
map.put("total", page.getTotalElements());
PageInfo pageInfo=new PageInfo(page.getTotalElements(),page.getContent());
return map ;
}
5.数据丢失的解决方案
方案一:隐藏要传递的值
优点:简单易理解
缺点:如果字段过多,代码量会比较大,安全性比较低。
方案二:在JPA的相应字段上加标签
@Column(updatable = false)
private String password;
优点:简单
缺点:改字段比较麻烦
方案三:先查询数据库,获取持久状态的对象,然后把页面的数据set到对象里面
Employee tempEmployee = employeeService.get(employee.getId());
//需要修改的值就从页面里面的employee放入tempEmployee
tempEmployee.setUsername(employee.getUsername());
employeeService.save(tempEmployee);